Forum Użytkownikow Subiekt GT

InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: moro w Wrzesień 21, 2017, 10:21:50

Tytuł: Ilość pozycji na dokumencie - zestawienie sql
Wiadomość wysłana przez: moro w Wrzesień 21, 2017, 10:21:50
Witam

W jaki sposób można pobrać z kfs ilość pozycji w sql? Dokładniej zależy mi na tym żeby określić czy w kfs były zmienione ceny czy ilości i wymyśliłem że chyba najłatwiej byłoby porównać ilość pozycji na kfs i fs oraz wartość kfs i fs.
Mógłby ktoś podsunąć pomysł jak się za to zabrać?
Tytuł: Odp: Ilość pozycji na dokumencie - zestawienie sql
Wiadomość wysłana przez: candy w Wrzesień 21, 2017, 11:09:44
KFS ma tyle samo pozycji, bez względu na to co było zmieniane i czy w ogóle było
Tytuł: Odp: Ilość pozycji na dokumencie - zestawienie sql
Wiadomość wysłana przez: moro w Wrzesień 21, 2017, 11:56:06
KFS ma tyle samo pozycji, bez względu na to co było zmieniane i czy w ogóle było
Jeżeli na fakturze mam np. 5 sztuk jabłek i 4 sztuki gruszek to mam razem 9 sztuk.
Jeżeli na korekcie zrobię 4 sztuki jabłek i 4 sztuki gruszek ( skoryguję 1 jabłko ) to mam razem 8 sztuk.
Chciałbym uzyskąć różnicę sum pozycji z FS i KFS.
Tytuł: Odp: Ilość pozycji na dokumencie - zestawienie sql
Wiadomość wysłana przez: dkozlowski w Wrzesień 21, 2017, 12:03:28
Różnicę masz zapisaną przecież na pozycji KFS.
Tytuł: Odp: Ilość pozycji na dokumencie - zestawienie sql
Wiadomość wysłana przez: candy w Wrzesień 21, 2017, 12:31:14
KFS ma tyle samo pozycji, bez względu na to co było zmieniane i czy w ogóle było
Chciałbym uzyskąć różnicę sum pozycji z FS i KFS.
Aha, to teraz wiemy o co naprawdę pytasz.

A tak przy okazji to jak ktoś zmieni ilość jabłek z 5 na 4, a ilość gruszek z 4 na 5 to suma zmian wyjdzie 0.

Wniosek będzie taki że zmieniono cenę. Podoba się?
Tytuł: Odp: Ilość pozycji na dokumencie - zestawienie sql
Wiadomość wysłana przez: moro w Wrzesień 21, 2017, 12:47:11
Nie ma u nas takich sytuacji... że na korekcie są dodawane pozycje.
Tytuł: Odp: Ilość pozycji na dokumencie - zestawienie sql
Wiadomość wysłana przez: candy w Wrzesień 21, 2017, 13:06:54
Rób jak uważasz, ja tylko zwracam uwagę na to że sposób który wybrałeś będzie dawał poprawne wyniki tylko w niektórych sytuacjach.
Tytuł: Odp: Ilość pozycji na dokumencie - zestawienie sql
Wiadomość wysłana przez: moro w Wrzesień 21, 2017, 14:09:33
ok... a może ktoś podpowiedź skąd pobrać taką wartość?
Tytuł: Odp: Ilość pozycji na dokumencie - zestawienie sql
Wiadomość wysłana przez: dkozlowski w Wrzesień 21, 2017, 14:33:57
ok... a może ktoś podpowiedź skąd pobrać taką wartość?
Jaką wartość ? Czytałeś moją odpowiedź ?
Tytuł: Odp: Ilość pozycji na dokumencie - zestawienie sql
Wiadomość wysłana przez: moro w Wrzesień 21, 2017, 14:40:19
ok... a może ktoś podpowiedź skąd pobrać taką wartość?
Jaką wartość ? Czytałeś moją odpowiedź ?

Sumę wartości ilości wszystkich pozycji na dokumencie FS i KFS  ( domyślam się że będzie to analogicznie )
Mam już joina pomiędzy dok_dokument a dok_pozycja.
Chodzi tylko o wyciągnięcie tej sumy ilości pozycji.
Tytuł: Odp: Ilość pozycji na dokumencie - zestawienie sql
Wiadomość wysłana przez: dkozlowski w Wrzesień 21, 2017, 14:46:40
No to pobierasz z dok_Pozycja, możesz się wspomóc widokami wykorzystywanymi w zestawieniach.
Tytuł: Odp: Ilość pozycji na dokumencie - zestawienie sql
Wiadomość wysłana przez: moro w Wrzesień 21, 2017, 15:25:24
No to pobierasz z dok_Pozycja, możesz się wspomóc widokami wykorzystywanymi w zestawieniach.
Ok moje zestawienie wygląda na razie tak:

SELECT
FS.dok_DataWyst AS "FS Data",
FS.dok_NrPelny as FS ,
PA.dok_NrPelny as  PA,
KFS.dok_DataWyst AS "KFS Data",
KFS.dok_NrPelny as KFS,
ZW.dok_NrPelny as  ZW,
KFS.dok_WartNetto as KFSnetto,
FS.dok_WartNetto as FSnetto,
(FS.dok_WartNetto+KFS.dok_WartNetto) AS "FSnetto-KFSnetto"
FROM dok__Dokument FS
LEFT JOIN dok__Dokument PA on FS.dok_doDokNrPelny = PA.dok_NrPelny AND PA.dok_Typ = 21
LEFT JOIN dok__Dokument KFS on FS.dok_NrPelny = KFS.dok_doDokNrPelny AND KFS.dok_Typ = 6
LEFT JOIN dok__Dokument ZW on PA.dok_NrPelny = ZW.dok_doDokNrPelny and ZW.dok_Typ = 14
LEFT JOIN adr__Ewid ON (FS.dok_OdbiorcaId = adr_IdObiektu AND adr_TypAdresu = 1)
LEFT JOIN sl_Kategoria ON sl_Kategoria.kat_Id = FS.dok_KatId
LEFT JOIN dok_Pozycja ON dok_Pozycja.ob_DokHanId = FS.dok_Id
WHERE FS.dok_Typ = 2
GROUP BY
FS.dok_DataWyst,
FS.dok_NrPelny,
PA.dok_NrPelny,
KFS.dok_DataWyst,
KFS.dok_NrPelny,
ZW.dok_NrPelny,
KFS.dok_WartNetto,
FS.dok_WartNetto,
adr__Ewid.adr_Nazwa,
sl_Kategoria.kat_Nazwa
order by FS.dok_DataWyst

Do niego chciałbym dopisać jeszcze sumę ilości pozycji na FS oraz sumę ilości pozycji na powiązanej z nią KFS.

Znalazłem wpis o sumowaniu pozycji na WZ ale nie potrafię tego połączyć z moim zestawieniem żeby działało dla FS i KFS.
select isnull(k.kat_nazwa,'(brak kategorii)') [Kategoria], cast(count(*) as money) [Ilość pozycji] 
from dok__dokument v LEFT JOIN sl_kategoria k ON v.dok_katid=k.kat_id INNER JOIN dok_Pozycja p on v.dok_Id=p.ob_DokMagId
where
v.dok_datawyst between {DR:Data wystawienia:}
and v.dok_Typ=11
group by k.kat_id,k.kat_nazwa

gdy w moim zestawieniu do selecta dodam
cast(count(*) as money) as Ilość_pozycji 

to mam tylko ilość pozycji na FS a nie sumę ilości sztuk z każdej pozycji.


Znalazłem również że w widoku
SELECT * from vwZstSprzWgKhnt
znajdują się poszczególne pozycje z ilością... ale nie mam pojęcia jak je zsumować i dodać jako wynik do mojego zestawienia....
Tytuł: Odp: Ilość pozycji na dokumencie - zestawienie sql
Wiadomość wysłana przez: candy w Wrzesień 21, 2017, 15:41:14
Nie wiem dlaczego łączysz pozycje z fakturami
LEFT JOIN dok_Pozycja ON dok_Pozycja.ob_DokHanId = FS.dok_Ida nie z korektami, czyli tak:
LEFT JOIN dok_Pozycja ON dok_Pozycja.ob_DokHanId = KFS.dok_Id
Gdybyś zrobił złaczenie z KFS to wystarczyło by dopisać po prostuSUM(ob_ilosc) AS [Suma ilosci]
Tytuł: Odp: Ilość pozycji na dokumencie - zestawienie sql
Wiadomość wysłana przez: moro w Wrzesień 21, 2017, 15:46:19
Nie wiem dlaczego łączysz pozycje z fakturami
LEFT JOIN dok_Pozycja ON dok_Pozycja.ob_DokHanId = FS.dok_Ida nie z korektami, czyli tak:
LEFT JOIN dok_Pozycja ON dok_Pozycja.ob_DokHanId = KFS.dok_Id
Gdybyś zrobił złaczenie z KFS to wystarczyło by dopisać po prostuSUM(ob_ilosc) AS [Suma ilosci]

Potrzebuję wyciągnąć tą wartość dla FS i jeżeli dla FS jest wystawiona KFS to równiez dla niej potrzebuję tą wartość.
Mając te 2 wartości mogą zrobić ich różnicę i otrzymać to czego szukam.
Tytuł: Odp: Ilość pozycji na dokumencie - zestawienie sql
Wiadomość wysłana przez: candy w Wrzesień 21, 2017, 15:54:48
No to zrób. W czym problem?
Pokazałem jak to zrobić dla KFS, dla FS trzeba to zrobić dokładnie tak samo
Tytuł: Odp: Ilość pozycji na dokumencie - zestawienie sql
Wiadomość wysłana przez: moro w Wrzesień 22, 2017, 08:13:13
SELECT
FS.dok_DataWyst AS "FS Data",
FS.dok_NrPelny as FS ,
PA.dok_NrPelny as  PA,
KFS.dok_DataWyst AS "KFS Data",
KFS.dok_NrPelny as KFS,
ZW.dok_NrPelny as  ZW,
SUM(ob_ilosc) AS "suma ilości pozycji skorygowanych",
FS.dok_WartNetto as FSnetto,
KFS.dok_WartNetto as KFSnetto,
(FS.dok_WartNetto+KFS.dok_WartNetto) AS "FSnetto-KFSnetto",
asl_PrzyczynaKorekty.pkr_Nazwa AS "przyczyna korekty"
FROM dok__Dokument FS
LEFT JOIN dok__Dokument PA on FS.dok_doDokNrPelny = PA.dok_NrPelny AND PA.dok_Typ = 21
LEFT JOIN dok__Dokument KFS on FS.dok_NrPelny = KFS.dok_doDokNrPelny AND KFS.dok_Typ = 6
LEFT JOIN dok__Dokument ZW on PA.dok_NrPelny = ZW.dok_doDokNrPelny and ZW.dok_Typ = 14
LEFT JOIN adr__Ewid ON (FS.dok_OdbiorcaId = adr_IdObiektu AND adr_TypAdresu = 1)
LEFT JOIN dok_Pozycja ON dok_Pozycja.ob_DokHanId = KFS.dok_Id
LEFT JOIN sl_PrzyczynaKorekty ON sl_PrzyczynaKorekty.pkr_Id = dok_Pozycja.ob_PrzyczynaKorektyId
WHERE FS.dok_Typ = 2
GROUP BY
FS.dok_DataWyst,
FS.dok_NrPelny,
PA.dok_NrPelny,
KFS.dok_DataWyst,
KFS.dok_NrPelny,
ZW.dok_NrPelny,
KFS.dok_WartNetto,
FS.dok_WartNetto,
adr__Ewid.adr_Nazwa,
sl_PrzyczynaKorekty.pkr_Nazwa
order by FS.dok_DataWyst
Takie zestawienie jak się okazało jest wystarczające. Dzięki za pomoc a wrzucam tu bo może komuś jeszcze się przyda.
Tytuł: Odp: Ilość pozycji na dokumencie - zestawienie sql
Wiadomość wysłana przez: Aldo w Wrzesień 25, 2017, 15:49:46
Chyba się nie przyda:
Tytuł: Odp: Ilość pozycji na dokumencie - zestawienie sql
Wiadomość wysłana przez: Biniew w Wrzesień 25, 2017, 16:50:18
SELECT
FS.dok_DataWyst AS "FS Data",
FS.dok_NrPelny as FS ,
PA.dok_NrPelny as  PA,
KFS.dok_DataWyst AS "KFS Data",
KFS.dok_NrPelny as KFS,
ZW.dok_NrPelny as  ZW,
SUM(ob_ilosc) AS "suma ilości pozycji skorygowanych",
FS.dok_WartNetto as FSnetto,
KFS.dok_WartNetto as KFSnetto,
(FS.dok_WartNetto+KFS.dok_WartNetto) AS "FSnetto-KFSnetto",
sl_PrzyczynaKorekty.pkr_Nazwa AS "przyczyna korekty"
FROM dok__Dokument FS
LEFT JOIN dok__Dokument PA on FS.dok_doDokNrPelny = PA.dok_NrPelny AND PA.dok_Typ = 21
LEFT JOIN dok__Dokument KFS on FS.dok_NrPelny = KFS.dok_doDokNrPelny AND KFS.dok_Typ = 6
LEFT JOIN dok__Dokument ZW on PA.dok_NrPelny = ZW.dok_doDokNrPelny and ZW.dok_Typ = 14
LEFT JOIN adr__Ewid ON (FS.dok_OdbiorcaId = adr_IdObiektu AND adr_TypAdresu = 1)
LEFT JOIN dok_Pozycja ON dok_Pozycja.ob_DokHanId = KFS.dok_Id
LEFT JOIN sl_PrzyczynaKorekty ON sl_PrzyczynaKorekty.pkr_Id = dok_Pozycja.ob_PrzyczynaKorektyId
WHERE FS.dok_Typ = 2
GROUP BY
FS.dok_DataWyst,
FS.dok_NrPelny,
PA.dok_NrPelny,
KFS.dok_DataWyst,
KFS.dok_NrPelny,
ZW.dok_NrPelny,
KFS.dok_WartNetto,
FS.dok_WartNetto,
adr__Ewid.adr_Nazwa,
sl_PrzyczynaKorekty.pkr_Nazwa
order by FS.dok_DataWyst
Tytuł: Odp: Ilość pozycji na dokumencie - zestawienie sql
Wiadomość wysłana przez: Aldo w Wrzesień 25, 2017, 21:06:37
Teraz jest poprawnie, ale mimo tego do użycia to mu jeszcze wiele brakuje.
Chociażby wyboru okresu. Jak puścicłem u siebie to zobaczyłem faktury z 1999 roku.
Skoro ma pokazywać ilość pozycji na dokumentach, to dlaczego tylko pokazuje na KFS, na samych FS już nie, a założenie było, że ma być tu i tu.