Forum Użytkownikow Subiekt GT
InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty 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ę:)
-
Pokaż jak zrobisz dla każdego dokumentu osobno to powiem Ci co dalej
-
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
-
A po co masz GROUP BY skoro nie masz żadnej funkcji agregującej (np SUM)?
-
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
-
Dla faktur zbiorczych z tego zestawienia wyjdą numery domów.
-
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.
-
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.