Denna sträng går fint att köra: Använd gruppering för att hämta ut det istället, lite snällare mot databasen: Prövade din sats men får då felet: Efter lite "tester" med paranteser fick jag satsen att fungera. Så här: Felmeddelandet betyder att den inte känner igen namnet "totaltpris". Det är ett alias, och det går inte att använda som namn i frågan.Null problem vid sql-fråga
Select distinct t1.fornamn,t1.efternamn,(Select sum(t3.pris*t3.antal) from orderlista t3,kundorder t4 where t3.orderid=t4.id AND t4.kundid=t1.id) as totaltpris from kunder t1
Problemet är att totaltpris tyvärr kan bli null vid vissa fall och jag vill inte ha med dem. När jag då lägger till "where (totaltpris is not null)" till sql-frågan ovan får jag felet: För få parametrar angavs. 1 förväntades
Min skalle står still, vad har jag missat?Sv: Null problem vid sql-fråga
Select t1.fornamn, t1.efternamn, sum(t3.pris*t3.antal) as totaltpris
from kunder t1
inner join kundorder t4 on t4.kundid=t1.id
inner join orderlista t3 on t3.orderid=t4.id
group by t1.fornamn, t1.efternamn
Ifall nullvärdena beror på att det inte finns några matchande poster i t3 eller t4, så blir du automatiskt av med dem.
Ifall nullvärdena beror på att du har null i fälten, så sorterar du bort dem genom att lägga till kontrollen med "having":
Select t1.fornamn, t1.efternamn, sum(t3.pris*t3.antal) as totaltpris
from kunder t1
inner join kundorder t4 on t4.kundid=t1.id
inner join orderlista t3 on t3.orderid=t4.id
group by t1.fornamn, t1.efternamn
having not totalpris is nullSv: Null problem vid sql-fråga
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 't4.kundid=t1.id inner join orderlista t3 on t3.orderid=t4.id'.
Är själv inte så van vid inner join tyvärr...Sv: Null problem vid sql-fråga
Select t1.fornamn, t1.efternamn, sum(t3.pris*t3.antal) as totaltpris from (kunder t1 inner join kundorder t4 on (t4.kundid=t1.id)) inner join orderlista t3 on (t3.orderid=t4.id) group by t1.fornamn, t1.efternamn
Nu ett nytt problem :-)
Kom på att jag även vill ha dem i viss ordning och lade dit "order by totaltpris desc" sist i satsen. Då får jag detta besked:
[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades.
Vad menas? Order by behöver väl ingen mer parameter än den jag skrivit redan...?Sv: Null problem vid sql-fråga
Däremot kan du sortera på fältets index i fältlistan:
order by 3 desc