Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

Temat: SQL: Grupowanie po datach z iloczynu kartezjańskiego

> Jacek P.:
> Witam,
> mam kwerendę, która wyświetla pewne wartości dla miesięcy w
> danych latach. Technicznie kwerenda oparta jest o inną kwerendę
> a ta o tabelę. Nie dla każdego miesiąca mam wartości w tabeli
> stąd moja kwerenda wynikowa wyświetla tylko niektóre miesiące.
> Jak zrobić żeby w wyniku mieć wszystkie miesiące począwszy od
> danej daty, ze stałymi wartościami dla miesięcy, które nie
> pojawiają się w tabeli?
http://www.goldenline.pl/grupy/Komputery_Internet/ms-a...

SQLek:
SELECT t1.[DataRM], t2.[Sprzedaz] FROM
(SELECT DISTINCT FORMAT(r.[data],'yyyy') & '.' &
FORMAT(m.[data],'mm') AS [DataRM] FROM [Faktura$] r, [Faktura$] m)
t1
LEFT OUTER JOIN
(SELECT FORMAT([data],'yyyy.mm') AS [DataRM], SUM([wart_net]) AS
[Sprzedaz] FROM [Faktura$] GROUP BY FORMAT([data],'yyyy.mm')) t2
ON t1.[DataRM]=t2.[DataRM]


Tabelka:
http://afin.net/samples/Data/ODBC/SalesInHTML/Faktura.htm

Wynik:
DataRM Sprzedaz
2004.01 140
2004.02 41
2004.03 118,4
2004.04 153,9
2004.05 42,6
2004.06 15
2004.07 5
2004.08 3,9
2004.09 13,6
2004.10 5,8
2004.11 4,5
2004.12 11
2005.01 5,2
2005.02 25,5
2005.03 5,5
2005.04 10,4
2005.05 0
2005.06 4,8
2005.07 16,2
2005.08 40,5
2005.09 0
2005.10 0
2005.11 0
2005.12 0