Forum Użytkownikow Subiekt GT
InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: kopio w Sierpień 24, 2016, 16:06:29
-
Witam
Potrzebuje zestawienia towarów w realizowanych zamówieniach. Na forum znalazłem i minimalnie zmieniłem coś takiego (poniżej). Generalnie spełnia moje oczekiwania. Jednak gdy by ktoś mógł podpowiedzieć jak dodać wybór magazynów albo chociaż ograniczyć działanie zapytania tylko do głównego magazynu to był bym wdzięczny.
SELECT tw_Symbol As Symbol
, tw_Nazwa as Nazwa
, SUM(ob_IloscMag * ob_Znak) as Ilosc
, ( SELECT SUM(st_Stan) FROM tw_stan WHERE st_TowId = ob_TowId GROUP BY st_TowId ) AS Stan
, tw_JednMiary as Jm
, SUM(ob_WartNetto * ob_Znak) as 'Wartosc Netto'
, SUM(ob_WartBrutto * ob_Znak) as 'WartoscBrutto'
, ( SELECT SUM(st_StanRez) FROM tw_stan WHERE st_TowId = ob_TowId GROUP BY st_TowId ) AS Rezerwacja
, ( SELECT SUM(st_Stan - st_StanRez) FROM tw_stan WHERE st_TowId = ob_TowId GROUP BY st_TowId ) AS Dostepne
FROM vwDok4ZamGrid
INNER JOIN dok_Pozycja ON dok_Id = ob_DokHanId
INNER JOIN tw__Towar ON ob_TowId = tw_Id
WHERE (
(dok_TerminRealizacji BETWEEN {DR:Realizowane w okresie:} )
AND (dok_Typ=16) AND dok_statusex<2
)
GROUP BY Tw_Symbol, tw_Nazwa, tw_JednMiary, ob_TowId
-
Dodaj warunek
dok_MagId = {WYBRANY_MAGAZYN}
-
Działa, dziękuje.
-
Witam ponownie.
Zapytanie do dzisiaj spisuje się znakomicie , powstała tylko nowa potrzeba tz. żeby podawało też nazwę kontrahenta (domyślam się że to adrh_Nazwa) . Był bym wdzięczny za pomoc.
-
Nie trzeba się domyślać, można po prostu przeczytać:
-
OK, źle sformułowałem swoją prośbę. Poprawiam się. Jak poprawnie rozbudować poniższe zapytanie o kolumnę adrh_Nazwa
SELECT
tw_Nazwa as Nazwa
, tw_Symbol As Symbol
, SUM(ob_IloscMag * ob_Znak) as Ilosc
, dok_NrPelny as Dokument
, dok_TerminRealizacji Termin
, ( SELECT SUM(st_Stan) FROM tw_stan WHERE st_TowId = ob_TowId GROUP BY st_TowId ) AS Stan
, tw_JednMiary as Jm
, ( SELECT SUM(st_StanRez) FROM tw_stan WHERE st_TowId = ob_TowId GROUP BY st_TowId ) AS Rezerwacja
, ( SELECT SUM(st_Stan - st_StanRez) FROM tw_stan WHERE st_TowId = ob_TowId GROUP BY st_TowId ) AS Dostepne
FROM vwDok4ZamGrid
INNER JOIN dok_Pozycja ON dok_Id = ob_DokHanId
INNER JOIN tw__Towar ON ob_TowId = tw_Id
WHERE (
(dok_TerminRealizacji BETWEEN {DR:Zamówione w okresie:} )
AND (dok_Typ=16) AND dok_status<>8 AND dok_MagId=3
)
GROUP BY Tw_Symbol, tw_Nazwa, tw_JednMiary, ob_TowId, dok_NrPelny, dok_TerminRealizacji
-
Za bardzo nie ma się nd czym zastanawiać, należy dodać złączenie z tabelą adr_Historia, dodać potrzebne kolumny do klauzuli "select" oraz "group by".
-
Problem rozwiązany, dziękuje za podpowiedź.
SELECT
adrh_Nazwa AS Klient
, tw_Nazwa as Nazwa
, tw_Symbol As Symbo
, SUM(ob_IloscMag * ob_Znak) as Ilosc
, dok_NrPelny as Dokument
, dok_TerminRealizacji Termin
, ( SELECT SUM(st_Stan) FROM tw_stan WHERE st_TowId = ob_TowId GROUP BY st_TowId ) AS Stan
, tw_JednMiary as Jm
, ( SELECT SUM(st_StanRez) FROM tw_stan WHERE st_TowId = ob_TowId GROUP BY st_TowId ) AS Rezerwacja
, ( SELECT SUM(st_Stan - st_StanRez) FROM tw_stan WHERE st_TowId = ob_TowId GROUP BY st_TowId ) AS Dostepne
FROM dok__Dokument dok left join adr_historia adr on dok.dok_platnikadreshid=adr.adrh_id
INNER JOIN dok_Pozycja ON dok_Id = ob_DokHanId
INNER JOIN tw__Towar ON ob_TowId = tw_Id
WHERE (
(dok_TerminRealizacji BETWEEN {DR:Zamówione w okresie:} )
AND (dok_Typ=16) AND dok_status<>8 AND dok_MagId=3
)
GROUP BY Tw_Symbol, tw_Nazwa, tw_JednMiary, ob_TowId, dok_NrPelny, dok_TerminRealizacji, adrh_Nazwa
-
A co trzeba dopisać żeby zamiast adresu kontrahenta był podany domyślny dostawca?
A w zasadzie jego symbol (czyli kh_symbol)