Hallåjs, < vad som utvärderas först? Jag har försökt sätta mig in i dina SQl frågor .... För invecklat just nu för min hjärna. Nej, Du måste köra en fråga som skapar en tabell av ditt data och sedan ställa frågan mot den nya tabellen.frågornas fråga !!!
här problem med dessa SQL-frågor, ursprungsproblemet är att jag inte vet hur man skall kunna bestämma vilket villkor som utvärderas först. Så därför tänkte jag dela upp frågan i två mindre frågor, för att öka hastigheten.
Set recSetForstaTider = databas.hamtaRecordSet("SELECT * FROM tider WHERE anstnr <= " & intTillAnstalld & " AND anstnr >= " & intFranAnstalld & " AND " & _
" Datum <= #" & dteTillDatum & "# AND Datum >= #" & dteFranDatum & "# AND Tjanstekod >= " & intFranTjanst & " " & _
" AND Tjanstekod <= " & intTillTjanst & " ")
Set recSetTider = databas.hamtaRecordSet("SELECT * FROM recSetForstaTider WHERE " & _
" (Tjanstekod IN (SELECT Tjanstekod FROM Tjanster WHERE TjKat IN (SELECT TjKat FROM TjKategori WHERE Nummer BETWEEN " & intFranTjansteKat & " AND " & intTillTjansteKat & " ))" & _
" OR Tjanstekod IN (SELECT Franvarokod FROM Franvaro WHERE TjKat IN (SELECT TjKat FROM TjKategori WHERE Nummer BETWEEN " & intFranTjansteKat & " AND " & intTillTjansteKat & " )) " & _
" OR Tjanstekod IN (SELECT Indirektkod FROM Indirekt WHERE TjKat IN (SELECT TjKat FROM TjKategori WHERE Nummer BETWEEN " & intFranTjansteKat & " AND " & intTillTjansteKat & " ))) " & _
" ORDER BY anstnr, Datum")
/e:aSv: frågornas fråga !!!
Det är ALLTID det innersta villkoret i en nästlad SQL-sats som utvärderas först
Ditt fel finns nog i andra sql-satsen
"SELECT * FROM recSetForstaTider" Här försöker du "selecta" från ditt tidigare recordset istället för från en tabell .
Du kan använda resultate från det första recordsetet och använda det som ett villkor i den andra men (mig veterligt) inte selecta ur den
Nettan Sv: frågornas fråga !!!
Förklara vad du vill göra ..
Är det så att det första recordsetet resultat ska finnas med i villkoren i den andra recordseten
Nåt sånt här
set rstEtt=con.execute("select nåtId from nånTabell where nåtID=(..........)"
set rstTva=con.execute("select * from nästaTabell where nästaId=" & rstEtt!nåtId & " AND .......)
NettanSv: frågornas fråga !!!
det är det först recordsetet som skall användas som utgångs tabell för det andra:
set RS1 = db.openrecordset("SELECT * FROM tabell.....")
set RS2 = db.openrecordset("SELECT * FROM RS1 ......")
hoppas det klarnade nu...
/e:aSv: frågornas fråga !!!
Men varför ???? Inte plocka ut datat du är intresserad av redan i första SQL-frågan.
Kanske nåt jag missat för jag har inte följt inläggen i denna tråd.
/peterh