Forum Użytkownikow Subiekt GT

InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: FLOKER w Sierpień 20, 2019, 21:15:40

Tytuł: Zestawienie Towar | Sprzedaż FS | Korekta KFS
Wiadomość wysłana przez: FLOKER w Sierpień 20, 2019, 21:15:40
Witam wszystkich użytkowników forum.

Zaznaczę odrazu, że jestem świeżym użytkownikiem forum jak i SQL;)

Mam pytanie techniczne czy uda się zrobić zestawienie SQL sprzedaży FS za dany okres dla danego Kontrahenta, które będzie wyświetlało kolumny w następujący sposób:

Filrt - Kontrahent:

Towar | Sprzedaż FS Ilość danego towaru (Suma dla towaru z danego okresu) | Korekta KFS Ilość danego towaru (suma dla towaru z danego okresu)

"Wyciągnięcie" danych każdego z osobna dla sprzedaży FS i Korekt KFS nie jest problemem, ale "złożyć" to w jedną tabelę już tak. Czy mogę prosić o zasugerowanie kierunku działania?

Dziękuję:)

Tytuł: Zestawienie Towar | Sprzedaż FS | Korekta KFS
Wiadomość wysłana przez: birds22 w Sierpień 20, 2019, 21:24:42
Pokaż jak zrobisz dla każdego dokumentu osobno to powiem Ci co dalej
Tytuł: Odp: Zestawienie Towar | Sprzedaż FS | Korekta KFS
Wiadomość wysłana przez: FLOKER w Sierpień 20, 2019, 21:32:34
Pokaż jak zrobisz dla każdego dokumentu osobno to powiem Ci co dalej

birds22 nie wiem czy to dobry kierunek, dla Korekt np.:

SELECT
tw_Symbol [Symbol towaru],
tw_Nazwa [Nazwa towaru],
ob_Ilosc [Ilość suma Korekt],
FROM dok_Pozycja
join dok__Dokument ON ob_DokHanId = dok_Id
join tw__Towar ON ob_TowId = tw_Id
WHERE
dok_Typ = 6
dok_DataWyst BETWEEN {DR:Data:2011-01-01:2011-12-31}
GROUP BY tw_Symbol, tw_Nazwa
Tytuł: Odp: Zestawienie Towar | Sprzedaż FS | Korekta KFS
Wiadomość wysłana przez: birds22 w Sierpień 20, 2019, 22:22:51
A po co masz GROUP BY skoro nie masz żadnej funkcji agregującej (np SUM)?
Tytuł: Odp: Zestawienie Towar | Sprzedaż FS | Korekta KFS
Wiadomość wysłana przez: FLOKER w Sierpień 20, 2019, 22:35:36
A po co masz GROUP BY skoro nie masz żadnej funkcji agregującej (np SUM)?

birds22 masz rację, powinno być:

SELECT
tw_Symbol [Symbol towaru],
tw_Nazwa [Nazwa towaru],
SUM (ob_Ilosc) [Ilość suma Korekt],
FROM dok_Pozycja
join dok__Dokument ON ob_DokHanId = dok_Id
join tw__Towar ON ob_TowId = tw_Id
WHERE
dok_Typ = 6
dok_DataWyst BETWEEN {DR:Data:2011-01-01:2011-12-31}
GROUP BY tw_Symbol, tw_Nazwa

NIe mam przed sobą komputera z Subiektem ale FS o ile pamiętam to = dok_Typ = 2, poniżej podliczenie dla FS.

SELECT
tw_Symbol [Symbol towaru],
tw_Nazwa [Nazwa towaru],
SUM (ob_Ilosc) [Ilość suma Sprzedaż],
FROM dok_Pozycja
join dok__Dokument ON ob_DokHanId = dok_Id
join tw__Towar ON ob_TowId = tw_Id
WHERE
dok_Typ = 2
dok_DataWyst BETWEEN {DR:Data:2011-01-01:2011-12-31}
GROUP BY tw_Symbol, tw_Nazwa


Tytuł: Odp: Zestawienie Towar | Sprzedaż FS | Korekta KFS
Wiadomość wysłana przez: candy w Sierpień 20, 2019, 23:41:43
Dla faktur zbiorczych z tego zestawienia wyjdą numery domów.
Tytuł: Odp: Zestawienie Towar | Sprzedaż FS | Korekta KFS
Wiadomość wysłana przez: birds22 w Sierpień 21, 2019, 09:18:57
SELECT
tw_Symbol [Symbol towaru],
tw_Nazwa [Nazwa towaru],
SUM (case when dok_typ=2 then ob_Ilosc ELSE 0 end) [Ilość suma Faktur],
SUM (case when dok_typ=6 then ob_Ilosc ELSE 0 end) [Ilość suma Korekt]
FROM dok_Pozycja
join dok__Dokument ON ob_DokHanId = dok_Id
join tw__Towar ON ob_TowId = tw_Id
WHERE
dok_Typ in (2,6)
and dok_DataWyst BETWEEN '20190101' and '20191231'
GROUP BY tw_Symbol, tw_Nazwa

Połączenie faktur i korekt to jest właśnie pikuś a niestety podstawowe zapytania są biedne (tak jak napisał @candy). Spróbuj wypisać WZ dodaj do niej fakturę zbiorczą i zmień na niej ilość. Zobacz co pokaże Ci zestawienie.
Tytuł: Zestawienie Towar | Sprzedaż FS | Korekta KFS
Wiadomość wysłana przez: candy w Sierpień 21, 2019, 09:41:35
Dodałbym jeszcze:
Na takiej frze zbiorczej w jednej pozycji zmień ilość, w drugiej cenę, w trzeciej ilość i cenę  i jeszcze dodaj czwartą, nową pozycję.
To samo zrób dla KFS.
Póki tego nie ogarniesz wszelkie zestawienia z fakturami zbiorczymi albo korektami będą do kitu.