Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

inner / left join problem

2 views
Skip to first unread message

Leif Neland

unread,
Jan 10, 2013, 6:51:07 AM1/10/13
to
Jeg skal hente det mest solgte produkt i en kategori, eller hvis ingen
solgte, bare et tilfᅵldigt

SELECT top 1 prodkat.prodid,navn,sum(antal)
FROM prodkat -- produkt i kategori-tabel
INNER JOIN produkter
ON produkter.prodid=prodkat.prodid -- stamdata for produkt
LEFT JOIN ordrelinier -- join nr 2
ON produkter.prodid=ordrelinier.prodid -- find produktet pᅵ ordre
INNER JOIN ordrer --join nr 3
ON ordrelinier.ordrenr=ordrer.ordrenr
AND ordredato>DATEADD(YEAR,-1,GETDATE())
WHERE prodkat.katid=@kat -- parameter
GROUP BY prodkat.prodid,navn
ORDER BY sum(antal) desc



Har jeg ikke "join nr 3" med, dvs joinet med ordrer, fᅵr jeg, hvis der
ingen varer er solgt den i kategori, en row, hvor sum(antal) er null

Laver jeg "join nr 2" INNER, fᅵr jeg ingen rows, det er klart.

Men jeg vil kun se pᅵ varer solgt det sidste ᅵr, sᅵ jeg joiner (join nr
3) med ordrer.

Men laver jeg et INNER JOIN, fᅵr jeg ingen rows, hvis ingen ordrer.
Laver jeg et LEFT JOIN, fᅵr jeg ogsᅵ talt ordrelinier med, hvor ordren
er for gammel.

Hvad kan jeg sᅵ gᅵre?

--
Husk kᅵrelys bagpᅵ, hvis din bilfabrikant har taget den idiotiske
beslutning at undlade det.


0 new messages