Hej
Dzięki za odp.
Niezbyt dobrze opisałem problem, prawdopodobnie z powodu, że zbyt długo się z tym męczyłem.
Wynikiem działania miało być generowanie raportów dziennych. Moim problemem było chyba to, że chciałem zawrzeć jak najwięcej w jak najmniejszej liczbie zapytań/kwerend.
Udało mi się utworzyć raport z podraportami, tyle, że każdy podraport oparty na kwerendzie, a nie tak jak planowałem na powiązaniu z głównym raportem.
Do każdej listy szczegółów musiałem stworzyć mini-podraport oparty na kwerendzie. Sumy ogólne wyciągam jednym zapytaniem:
SELECT
IIf(KASY_FISKALNE.KASA_1 IS NULL,0,KASY_FISKALNE.KASA_1) AS KASA_1,
IIf(KASY_FISKALNE.KASA_2 IS NULL,0,KASY_FISKALNE.KASA_1) AS KASA_2,
(SELECT IIF(SUM(KWOTA) IS NULL , 0 , SUM(KWOTA)) FROM KASA WHERE RODZAJ=12 AND DateValue(DATA)=DateValue(Forms!ROZLICZENIE_DNIA_PARAMETRY!data_wybrana)) AS ZALICZKI_WPLACONE,
(SELECT IIF(SUM(KWOTA) IS NULL , 0 , SUM(KWOTA)) FROM KASA WHERE RODZAJ=11 AND DateValue(DATA)=DateValue(Forms!ROZLICZENIE_DNIA_PARAMETRY!data_wybrana)) AS WPLATY_GOTOWKOWE,
(SELECT IIF(SUM(KWOTA) IS NULL , 0 , SUM(KWOTA)) FROM KASA WHERE RODZAJ=2 AND DateValue(DATA)=DateValue(Forms!ROZLICZENIE_DNIA_PARAMETRY!data_wybrana)) AS ZWROTY_VAT,
(SELECT IIF(SUM(KWOTA) IS NULL , 0 , SUM(KWOTA)) FROM KASA WHERE RODZAJ=4 AND DateValue(DATA)=DateValue(Forms!ROZLICZENIE_DNIA_PARAMETRY!data_wybrana)) AS DO_BANKU,
(SELECT IIF(SUM(KWOTA) IS NULL , 0 , SUM(KWOTA)) FROM KASA WHERE RODZAJ=6 AND DateValue(DATA)=DateValue(Forms!ROZLICZENIE_DNIA_PARAMETRY!data_wybrana)) AS ZAICZKI_WYDANE,
(SELECT IIF(SUM(KWOTA) IS NULL , 0 , SUM(KWOTA)) FROM KASA WHERE RODZAJ=7 AND DateValue(DATA)=DateValue(Forms!ROZLICZENIE_DNIA_PARAMETRY!data_wybrana)) AS ZWROTY_DO_PARAGONU,
(SELECT IIF(SUM(KWOTA) IS NULL , 0 , SUM(KWOTA)) FROM KASA WHERE RODZAJ=5 AND DateValue(DATA)=DateValue(Forms!ROZLICZENIE_DNIA_PARAMETRY!data_wybrana)) AS KW,
(SELECT IIF(SUM(KWOTA) IS NULL , 0 , SUM(KWOTA)) FROM KASA WHERE RODZAJ IN (3,8,9,10) AND DateValue(DATA)=DateValue(Forms!ROZLICZENIE_DNIA_PARAMETRY!data_wybrana)) AS FAKTURY
FROM KASY_FISKALNE WHERE (((DateValue([DATA]))=DateValue(Forms!ROZLICZENIE_DNIA_PARAMETRY!data_wybrana)));
Przy okazji znalazłem jak pobrać wartość z pola formularza do kwerendy:)
Ale Twoje
SELECT Tabela1.RODZAJ, Count(Tabela1.ID) AS PoliczOfID, Sum(Tabela1.KWOTA) AS SumaOfKWOTA
FROM Tabela1 GROUP BY Tabela1.RODZAJ;
jest lepsze, po małym dostosowaniu:
SELECT RODZAJE_OPERACJI.NAZWA AS NAZWA, Sum(KASA.KWOTA) AS SumaOfKWOTA
FROM KASA LEFT JOIN RODZAJE_OPERACJI ON RODZAJE_OPERACJI.ID=KASA.RODZAJ
GROUP BY RODZAJE_OPERACJI.NAZWA;
Jeszcze tylko nie rozumiem filozofii tworzenia wielokrotnych joinów. Jest jakoś inaczej, ale może dzisiaj mi się uda