Autor Wątek: Baza danych, wyciąganie ostatniej ceny zakupu towaru.  (Przeczytany 3366 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline nevetone

  • Nowy użytkownik
  • *
  • Wiadomości: 8
  • Reputacja +0/-0
  • Wersja programu: 1.63
Baza danych, wyciąganie ostatniej ceny zakupu towaru.
« dnia: 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ą.

Offline yemet

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1246
  • Reputacja +46/-1
  • Wersja programu: Navireo
Odp: Baza danych, wyciąganie ostatniej ceny zakupu towaru.
« Odpowiedź #1 dnia: Wrzesień 18, 2020, 10:16:16 »
Pokaż co dokładnie robisz. Jakieś swoje zapytanie napisałeś?

Offline nevetone

  • Nowy użytkownik
  • *
  • Wiadomości: 8
  • Reputacja +0/-0
  • Wersja programu: 1.63
Odp: Baza danych, wyciąganie ostatniej ceny zakupu towaru.
« Odpowiedź #2 dnia: Wrzesień 18, 2020, 10:41:40 »
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.

Offline nevetone

  • Nowy użytkownik
  • *
  • Wiadomości: 8
  • Reputacja +0/-0
  • Wersja programu: 1.63
Odp: Baza danych, wyciąganie ostatniej ceny zakupu towaru.
« Odpowiedź #3 dnia: Wrzesień 18, 2020, 10:57:58 »
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.

Offline yemet

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1246
  • Reputacja +46/-1
  • Wersja programu: Navireo
Odp: Baza danych, wyciąganie ostatniej ceny zakupu towaru.
« Odpowiedź #4 dnia: Wrzesień 18, 2020, 11:00:37 »
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!=''

Offline nevetone

  • Nowy użytkownik
  • *
  • Wiadomości: 8
  • Reputacja +0/-0
  • Wersja programu: 1.63
Odp: Baza danych, wyciąganie ostatniej ceny zakupu towaru.
« Odpowiedź #5 dnia: Wrzesień 18, 2020, 11:06:37 »
Dzięki wielkie za szybką odpowiedź i pomoc, na pewno mi to pomoże :)

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17040
  • Reputacja +798/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Baza danych, wyciąganie ostatniej ceny zakupu towaru.
« Odpowiedź #6 dnia: Wrzesień 18, 2020, 11:36:38 »
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
Daniel, Białystok.

Forum Użytkownikow Subiekt GT

Odp: Baza danych, wyciąganie ostatniej ceny zakupu towaru.
« Odpowiedź #6 dnia: Wrzesień 18, 2020, 11:36:38 »