Ostatni wynik zapytania

0

Witam

Czy możecie mi pomóc w zbudowaniu zapytania MS SQL które z takiej tabeli :

IdDok||Kod||Ilosc||zn||sb||sn||StawkaVAT||VATZw
1||5900512200033||4||3,80||5,56||5,28||5||0
1||5900512850146||1||0,99||1,55||1,48||5||0
1||5900512850085||1||0,99||1,55||1,48||5||0
1||5900512850023||12||23,16||32,28||30,72||5||0
1||5900512850016||5||10,15||14,45||13,75||5||0
1||5900512700038||1||2,81||3,89||3,70||5||0
1||5900512700021||2||5,62||7,78||7,40||5||0
1||5900512320335||26||50,70||69,94||66,56||5||0
1||5900512300474||4||9,32||12,36||11,76||5||0
1||5900477009085||3||7,65||15,57||14,82||5||0
1||5900512200040||2||1,92||2,78||2,64||5||0
1||5900516300487||1||2,77||4,59||4,25||8||0
1||5900512200026||3||2,88||4,17||3,96||5||0
1||59005117||8||64,64||84,80||68,96||23||0
1||59005100||13||105,04||137,80||112,06||23||0
1||5900500028908||7||20,09||27,93||26,60||5||0
1||5900500028885||5||13,20||20,95||19,95||5||0
1||5900500028847||7||20,09||29,33||27,93||5||0

wyświetli mi ostatnie ceny zakupu (kolumna zn) dla towarów których kody kreskowe będą wynikiem podzapytania.

Czyli w tym wypadku było by to :
KOD KRESKOWY||cena zakupu
5900500028847||20,09
5900512200026||2,88
59005117||64,64
59005100||105,04
5900500028908||20,09
5900500028885||13,20

i tak dalej...

Z góry dziękuję.

0

TABELA:
IdDok | Kod | Ilosc | zn | sb | sn | StawkaVAT | VATZw
1 | 5900512200033 | 4 | 3,80 | 5,56 | 5,28 | 5 | 0
1 | 5900512850146 | | 1 | 0,99 | 1,55 | 1,48 | 5 | 0
1 | 5900512850085 | | 1 | 0,99 | 1,55 | 1,48 | 5 | 0
1 | 5900512850023 | 12 | 23,16 | 32,28 | 30,72 | 5 | 0
1 | 5900512850016 | 5 | 10,15 | 14,45 | 13,75 | 5 | 0
1 | 5900512700038 | | 1 | 2,8 | 1 | 3,89 | 3,70 | 5 | 0
1 | 590051270002 | 1 | 2 | 5,62 | 7,78 | 7,40 | 5 | 0
1 | 5900512320335 | 26 | 50,70 | 69,94 | 66,56 | 5 | 0
1 | 5900512300474 | 4 | 9,32 | 12,36 | 11,76 | 5 | 0
1 | 5900477009085 | 3 | 7,65 | 15,57 | 14,82 | 5 | 0
1 | 5900512200040 | 2 | 1,92 | 2,78 | 2,64 | 5 | 0
1 | 5900516300487 | | 1 | 2,77 | 4,59 | 4,25 | 8 | 0
1 | 5900512200026 | 3 | 2,88 | 4,17 | 3,96 | 5 | 0
1 | 59005117 | 8 | 64,64 | 84,80 | 68,96 | 23 | 0
1 | 59005100 | 13 | 105,04 | 137,80 | 112,06 | 23 | 0
1 | 5900500028908 | 7 | 20,09 | 27,93 | 26,60 | 5 | 0
1 | 5900500028885 | 5 | 13,20 | 20,95 | 19,95 | 5 | 0
1 | 5900500028847 | 7 | 20,09 | 29,33 | 27,93 | 5 | 0

WYNIK:
KOD KRESKOWY | cena zakupu
5900500028847 | 20,09
5900512200026 | 2,88
59005117 | 64,64
59005100 | 105,04
5900500028908 | 20,09
5900500028885 | 13,20

Wartości w IdDok mogą być powtórzone.

0

Nie napisałeś co oznacza "ostatnia cena zakupu". Bo aktualnie to w przykładzie wygląda jak "znaleziona cena zakupu" a chyba nie o to chodzi.

Do tego co napisałeś pasuje:

select Kod, zn from tabela where Kod in 
(...)

Jeśli by założyć, że IdDok się zmienia wraz z aktualizacją cen, to byłoby tak:

select Kod, zn from tabela t0 where IdDok in (
select max(t1.IdDok) from tabela t1 
where t1.Kod = t0.Kod
)
and Kod in (...)
0

Piotrze dokładnie o to chodziło.

Problem pojawia się gdy dany towar jest w dwóch cenach zakupu (zn) na jednym dokumencie (iddok) jednak to problem nie do rozwiązania przy tej budowie tabeli.

Dziękuję serdecznie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1