Forum Użytkownikow Subiekt GT
InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: nevetone w Wrzesień 18, 2020, 10:07:46
-
Witam,
Problem mam taki, że gdy wyciągam dane z bazy po FZ, owszem pokazuje mi cenę zakupu lecz jest ona nie kompletna.
z ponad 30tys. produktów pokazuje mi się około 7tyś.
Oczywiście są produkty które w subiekcie w zakładce kalkulacji cen, posiadają cenę ostatniego zakupu, a mój roboczy qs nie odszukuje ich.
Pytanie czy jest jakaś tabelka w bazie, która przechowuje ostatnią cenę zakupu, lub jeżeli robi ją na bieżąco to w jaki sposób można by było takie coś wyciągnąć?
Z góry dziękuje za odpowiedzi.
Od razu chcę zaznaczyć, że owszem już były takie posty na tym forum. Nawet zostały rozwiązane. Lecz one są z 2010roku ok. i załączniki które tam były, prawdopodobnie się nie wyświetlają.
-
Pokaż co dokładnie robisz. Jakieś swoje zapytanie napisałeś?
-
Po krótkich problemach z niemożliwością odpisania już wysyłam qs.
Od razu chcę zaznaczyć, że jestem początkującym jeśli chodzi o język sql i może to być bardzo roboczo napisane.
WITH ranked AS (
select tw_Symbol, tw_Opis, dok_NrPelny, ob_CenaMag,ROW_NUMBER() OVER (PARTITION BY tw_symbol ORDER BY ob_CenaMag DESC) AS rn
FROM tw__Towar
inner JOIN tw_Cena on tw_id = tc_IdTowar
inner JOIN dok_Pozycja on tw_id = ob_TowId
inner JOIN dok__Dokument on ob_DokHanId = dok_Id
)
SELECT tw_Symbol as 'Symbol',tw_Opis as 'Opis', ob_CenaMag as 'Cena Netto' FROM ranked WHERE rn = 1
and tw_Opis != ''
and dok_NrPelny like '%FZ%'
z tego co teraz zauważyłem powinienem order by zrobić po np. dacie wystawienia ale to już kwestia prawdziwości danych a nie ich ilości.
-
Zaznaczam też przy okazji, że jakiekolwiek zapytanie które by potrafiło wyciągnąć cenę ostatniego zakupu było by przydatne.
Nie musi być to bardzo optymalne, ponieważ będzie używane raz na jakiś czas.
-
Chcesz wyciągnąć ostatnią cenę zakupu czy coś innego? Dużo łatwiej takie rzeczy się robi jak poprosisz swojego serwisanta żeby podesłał ci źródła procedur i funkcji siedzących w bazie.
Poniżej masz napisane na kolanie zapytanie wykorzystujące kod procedury spSub_CenyPoziom_1 -Cena netto z ostatniej dostawy
SELECT symbol = tt.tw_Symbol
,opis = tt.tw_Opis
,'cena ostatniego zakupu'=spSub_CenyPoziom_1.ost_zak
FROM tw__Towar tt
cross apply (
SELECT TOP 1
ost_zak =
CASE WHEN d.dok_Typ=3 THEN
dbo.fnInsMulDiv( ISNULL(b.mw_Cena,0), 100.0, ( p.ob_VatProc + 100.0 ), 2 )
ELSE
ISNULL(b.mw_Cena,0)
END
FROM dok_MagRuch a WITH (NOLOCK)
JOIN vwDokMagWart b WITH (NOLOCK) ON a.mr_SeriaId = b.mw_SeriaId
JOIN dok_Pozycja p WITH (NOLOCK) ON a.mr_PozId = p.ob_Id
JOIN dok__Dokument d WITH (NOLOCK) ON ISNULL(p.ob_DokHanId,p.ob_DokMagId) = d.dok_Id
WHERE a.mr_Id = a.mr_SeriaId AND a.mr_TowId = tt.tw_id
ORDER BY mr_Data DESC, mr_Id DESC, mw_Data DESC, mw_PozId DESC
) spSub_CenyPoziom_1
where tt.tw_Opis!=''
-
Dzięki wielkie za szybką odpowiedź i pomoc, na pewno mi to pomoże :)
-
Pytanie czy jest jakaś tabelka w bazie, która przechowuje ostatnią cenę zakupu, lub jeżeli robi ją na bieżąco to w jaki sposób można by było takie coś wyciągnąć?
Z góry dziękuje za odpowiedzi.
Powtarzamy na forum od lat:
- nie, informacja taka jest wyliczana na podstawie dokumentów
- nie zgaduje się, nie odkrywa się koła na nowo, wystarczy zobaczyć jak działa program i zrobić tak samo