mojaSymfonia FORUM
https://forum.mix-soft.pl/

Obroty i stany magazynowe z podziałem na magazyny
https://forum.mix-soft.pl/viewtopic.php?f=15&t=10014
Strona 1 z 1

Autor:  symfonia_zamula [ 2021-08-24, 13:22 ]
Tytuł:  Obroty i stany magazynowe z podziałem na magazyny

Cześć,

próbowałem napisać zapytanie SQL, które wyrzuci mi do Excela towar z podziałem na wszystkie magazyny, ich obroty i w drugim zapytaniu stan na kazdym z magazynow na konkretny dzien.

Bez opisu tabel ciężko jest coś stworzyć, szkoda, że Sage nie udostępnia dokumentacji.

Na razie mam coś takiego ale wciąż wyniki się różnią z tym co wypluwa program.

Kod:
select
  mz.kod as Kod_towaru,
  mz.opis as Nazwa_towaru,
  kh.kod as Magazyn,
  tw.typks as Kategoria,
  CASE WHEN iloscwp < 0 THEN iloscwp *(-1) ELSE 0 END as Ilosc_plus,
  przychod *-1 as Przychod,
  CASE WHEN iloscwp > 0 THEN iloscwp ELSE 0 END as Ilosc_minus,
  rozchod as Rozchod
from
  hm.mz as mz
  inner join hm.kh as kh on kh.id = mz.magazyn
  inner join hm.tw as tw on mz.idtw = tw.id
where
  mz.flag NOT IN ('9984', '9728', '8704', '8960')
  and mz.bufor = 0
  and mz.kompensata = 0


Czy byłby ktoś w stanie poprawić kod, żeby wynik się zgadzał?

Autor:  Zenek N [ 2021-08-25, 13:27 ]
Tytuł:  Re: Obroty i stany magazynowe z podziałem na magazyny

Jaka wersja Symfoni ?

Autor:  symfonia_zamula [ 2021-08-26, 14:21 ]
Tytuł:  Re: Obroty i stany magazynowe z podziałem na magazyny

Symfonia ERP Handel 2021.3

Autor:  rafal [ 2021-08-26, 16:05 ]
Tytuł:  Re: Obroty i stany magazynowe z podziałem na magazyny

Z dokumentacją nie wiele łatwiej

Autor:  Arek44 [ 2021-09-10, 13:44 ]
Tytuł:  Re: Obroty i stany magazynowe z podziałem na magazyny

Kolega złapie sobie przy pomocy SQL Server Profiler jakie zapytanie leci do bazy przy interesujących go zestawieniach, a następnie poprzerabia je wg własnych potrzeb. Tak będzie chyba najłatwiej.
Np. dla zestawienia "Stany magazynowe towarów na dzień..." Profiler wypluł poniższe zapytanie.
Kod:
SELECT TW.id
   ,TW.katalog
   ,TW.rodzaj
   ,TW.znacznik
   ,TW.typ
   ,TW.subtyp
   ,TW.subtypext
   ,TW.vatsp
   ,TW.sww
   ,TW.pcn
   ,TW.jm
   ,TW.jmdef
   ,TW.jmdod1
   ,TW.przeljmdod1
   ,TW.jmdod2
   ,TW.przeljmdod2
   ,TW.przelkg
   ,TW.przeluz
   ,TW.jmuzup
   ,TW.nazwa
   ,TX.opis
   ,TW.kod
   ,ISNULL(a.wartosc, 0) + ISNULL(s.wartosc, 0)
   ,ISNULL(a.ilosc, 0) + ISNULL(s.stan, 0)
FROM TW
LEFT JOIN TX ON (TX.id = TW.idlongname)
JOIN (
   SELECT SM.idtw
      ,sum(ISNULL(SM.wartosc, 0)) wartosc
      ,sum(ISNULL(SM.stan, 0)) stan
   FROM SM
   JOIN ZZ ON ZZ.typ = 101
      AND ZZ.baza1 = 20
      AND ZZ.baza2 = 20
      AND ZZ.id1 = SM.magazyn
      AND ZZ.id2 = 32770
   WHERE SM.magazyn = 65563
   GROUP BY SM.idtw
   ) s ON TW.id = s.idtw
LEFT JOIN (
   SELECT MZ.idtw
      ,sum(ISNULL(MZ.ilosc, 0)) ilosc
      ,sum(ISNULL(przychod, 0) + ISNULL(rozchod, 0)) wartosc
   FROM MZ
   JOIN ZZ ON ZZ.typ = 101
      AND ZZ.baza1 = 20
      AND ZZ.baza2 = 20
      AND ZZ.id1 = MZ.magazyn
      AND ZZ.id2 = 32770
   WHERE MZ.data <= '2021-09-06'
      AND MZ.data >= '2021-09-11'
      AND ISNULL(MZ.bufor, 0) = 0
      AND (ISNULL(MZ.typ, 0) & 0x01) = 0
      AND MZ.magazyn = 65563
   GROUP BY MZ.idtw
   ) a ON TW.id = a.idtw
WHERE TW.subtyp = 0
   AND TW.typ = 0

Oczywiście, żeby zapytanie zadziałało nazwy tabel trzeba uzupełnić o schemat HM.

Autor:  symfonia_zamula [ 2021-10-27, 12:39 ]
Tytuł:  Re: Obroty i stany magazynowe z podziałem na magazyny

Czy mógłbyś wytłumaczyć jak do tego doszedłeś? Nie znam SQL server profiler.

Autor:  michalkurzak [ 2021-10-28, 12:49 ]
Tytuł:  Re: Obroty i stany magazynowe z podziałem na magazyny

Hej :)
Wiecie skąd w zapytaniu jest pierwsza data?
Kod:
   WHERE MZ.data <= '2021-09-06'
      AND MZ.data >= '2021-09-11'


Druga data jest dniem kolejnym po dacie ustawionej w "Stany magazynowe towarów na dzień".
Pierwsza? U mnie jest to zawsze 2021-04-30, nie mam pojęcia skąd.

Autor:  michalkurzak [ 2021-10-28, 13:05 ]
Tytuł:  Re: Obroty i stany magazynowe z podziałem na magazyny

@symfonia_zamula Jeżeli masz Microsoft SQL Server Management Studio - wejdź w Tools -> SQL Server Profiler. Najlepiej wtedy zastopować tracking i wyczyścić okno, uruchomić tracking zaraz zanim wykonasz w Symfonii akcję, którą chcesz "zbadać" i zastopować zaraz po niej - łatwiej będzie znaleźć konkretne zapytanie w wynikach.

Autor:  Arek44 [ 2021-11-03, 21:06 ]
Tytuł:  Re: Obroty i stany magazynowe z podziałem na magazyny

Cytuj:
Wiecie skąd w zapytaniu jest pierwsza data?

Pierwsza data to data ostatniej operacji magazynowej.
Podzapytanie s pobiera aktualne stany, podzapytanie a zmiany ilości i wartości od dnia następnego po dniu na który chcemy mieć zestawienie, dlatego takie, a nie inne daty.

Autor:  symfonia_zamula [ 2021-11-04, 11:41 ]
Tytuł:  Re: Obroty i stany magazynowe z podziałem na magazyny

Super. Pomogłeś mi bardzo. Udało mi się dopisać kod w pythonie, który szybko przeleci wszystkie magazyny na dowolny dzień. Dzięki.

Autor:  Arek44 [ 2021-11-04, 13:10 ]
Tytuł:  Re: Obroty i stany magazynowe z podziałem na magazyny

Tej pierwszej daty (ostatniej operacji) można nie pobierać w swoim kodzie, tylko ustawić na sztywno na '9999-12-31'.

Strona 1 z 1 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/