[SQL] LEFT JOIN en SUM probleem

Pagina: 1
Acties:

  • Roel Broersma
  • Registratie: Maart 2000
  • Laatst online: 12-05 16:32
Er is een tabel ORDERS en een tabel ORDER_DETAILS

Nu wil ik een Query draaien waarbij de ORDER_DETAIL bedragen bij elkaar worden opgeteld.
Ik join ORDERS en ORDER_DETAILS met een LEFT JOIN met elkaar, hierdoor heb ik dus soms geen order_details bij een order. Resultaat: Kan SUM niet uitvoeren!

code:
1
2
3
4
5
6
7
8
9
10
11
SELECT
   LAST(order_detail_date) AS order_detail_date,
   SUM(order_detail_price) AS total_price
FROM
   orders LEFT JOIN order_details ON orders.order_id=order_details.order_id
WHERE
   total_price=tbl_orders.total_price
GROUP BY
   order_id
ORDER BY
  order_id DESC


Als het goed is zou ik nu dus alleen maar orders zien waarvan het totaal van alle order_details gelijk is aan het order totaal.
In ASP krijg ik een foutmelding; wanneer ik de Query in Microsoft Access uitvoer vraag deze om een waarde voor "order_detail_price" op te geven (hetgeen zich in SUM bevind).

...don't know what should be here...


Verwijderd

bestaat de tabel tbl_orders wel? ik zie hem niet in de join voorkomen. Kun je de sum niet in de where clausule zetten?

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

De zaken in de 'select' worden pas na de where uitgevoerd, op deze manier kan het dus niet.
Kijk eens naar 'having'.

Who is John Galt?


  • Roel Broersma
  • Registratie: Maart 2000
  • Laatst online: 12-05 16:32
Orders staat toch gelijk vooraan in de FROM ?

SUM, LAST, FIRST etc. mogen NIET in de WHERE clause staan.

Microsoft Access: "Cannot have aggregate function in WHERE clause ...voorbeeld...."

...don't know what should be here...


  • Just_a_Gamer
  • Registratie: November 2001
  • Laatst online: 15:42
Je moet in je Group by ook de kolommen order_detail_date en order_detail_price meenemen