Technologia i ceny użytych częsci
Moderator: mikey
Technologia i ceny użytych częsci
Witam serdecznie,
męczę się od jakiegoś czasu z tematem i nie widzę podobnego tematu a mianowicie mam zapytanie które pokazuje mi użyte podzespoły w danej technologii i pobieram sobie ilosci z róznych magazynów oraz wyliczam na ile gotowych produktów mi starczy ale nie wiem jak podpiąć pod to ceny zakupu żeby wyliczyć na końcu wartość kosztów.
Oto moje zapytanie SQL:
"SELECT
PTZ_Kod AS kod,
PTZ_Nazwa AS nazwa,
PTZ_Ilosc AS ilosc,
PTZ_Jednostka jednostka,
CASE
WHEN PTZ_Jednostka = '0' THEN CAST(ROUND(SUM(PTZ_Ilosc), 0) AS INTEGER)
ELSE CAST(ROUND(SUM(PTZ_Ilosc), 2) AS INTEGER)
END AS ilosc_short,
STUFF((
SELECT '|- ' +
FORMAT(s.IloscMag, 'N0') + ' szt. - ' + s.Magazyn + ' -|'
FROM CDN.IFS_Stany s
WHERE CDN.ProdBOM.PTZ_Kod = s.Towar
FOR XML PATH('')
), 1, 2, '') AS stany_magazynowe,
SUM(s.IloscMag) AS razem_ilosc,
CASE
WHEN PTZ_Ilosc <> 0 THEN CAST(ROUND(SUM(s.IloscMag) / PTZ_Ilosc, 2) AS DECIMAL(18,2))
ELSE 0
END AS zapas,
CASE
WHEN PTZ_Ilosc <> 0 THEN CAST(ROUND(SUM(CASE WHEN s.Magazyn IN ('komp', 'temp') THEN s.IloscMag ELSE 0 END) , 2) AS DECIMAL(18,2))
ELSE 0
END AS ilosc_temp_komp,
CASE
WHEN PTZ_Ilosc <> 0 THEN CAST(ROUND(SUM(CASE WHEN s.Magazyn IN ('komp', 'temp') THEN s.IloscMag ELSE 0 END) / PTZ_Ilosc, 2) AS DECIMAL(18,2))
ELSE 0
END AS zapas_temp_komp
FROM CDN.ProdBOM($id)
LEFT JOIN CDN.IFS_Stany s ON CDN.ProdBOM.PTZ_Kod = s.Towar
GROUP BY PTZ_Kod, PTZ_Nazwa, PTZ_Jednostka, PTZ_Ilosc
ORDER BY nazwa;
"
męczę się od jakiegoś czasu z tematem i nie widzę podobnego tematu a mianowicie mam zapytanie które pokazuje mi użyte podzespoły w danej technologii i pobieram sobie ilosci z róznych magazynów oraz wyliczam na ile gotowych produktów mi starczy ale nie wiem jak podpiąć pod to ceny zakupu żeby wyliczyć na końcu wartość kosztów.
Oto moje zapytanie SQL:
"SELECT
PTZ_Kod AS kod,
PTZ_Nazwa AS nazwa,
PTZ_Ilosc AS ilosc,
PTZ_Jednostka jednostka,
CASE
WHEN PTZ_Jednostka = '0' THEN CAST(ROUND(SUM(PTZ_Ilosc), 0) AS INTEGER)
ELSE CAST(ROUND(SUM(PTZ_Ilosc), 2) AS INTEGER)
END AS ilosc_short,
STUFF((
SELECT '|- ' +
FORMAT(s.IloscMag, 'N0') + ' szt. - ' + s.Magazyn + ' -|'
FROM CDN.IFS_Stany s
WHERE CDN.ProdBOM.PTZ_Kod = s.Towar
FOR XML PATH('')
), 1, 2, '') AS stany_magazynowe,
SUM(s.IloscMag) AS razem_ilosc,
CASE
WHEN PTZ_Ilosc <> 0 THEN CAST(ROUND(SUM(s.IloscMag) / PTZ_Ilosc, 2) AS DECIMAL(18,2))
ELSE 0
END AS zapas,
CASE
WHEN PTZ_Ilosc <> 0 THEN CAST(ROUND(SUM(CASE WHEN s.Magazyn IN ('komp', 'temp') THEN s.IloscMag ELSE 0 END) , 2) AS DECIMAL(18,2))
ELSE 0
END AS ilosc_temp_komp,
CASE
WHEN PTZ_Ilosc <> 0 THEN CAST(ROUND(SUM(CASE WHEN s.Magazyn IN ('komp', 'temp') THEN s.IloscMag ELSE 0 END) / PTZ_Ilosc, 2) AS DECIMAL(18,2))
ELSE 0
END AS zapas_temp_komp
FROM CDN.ProdBOM($id)
LEFT JOIN CDN.IFS_Stany s ON CDN.ProdBOM.PTZ_Kod = s.Towar
GROUP BY PTZ_Kod, PTZ_Nazwa, PTZ_Jednostka, PTZ_Ilosc
ORDER BY nazwa;
"
Re: Technologia i ceny użytych częsci
Nikt nie ma pomysłu w której tabeli są te ceny i po jakim polu je połączyć z podzespołami potrzebnymi w technologii ??
Wyciągam to do swojego programu który tworzę w Laravel a nie miałem wcześniej styczności z Comarchem a tych tabel
tam jest mnóstwo i jak widzę niektóre mają po 40 kolumn - masakra
Wyciągam to do swojego programu który tworzę w Laravel a nie miałem wcześniej styczności z Comarchem a tych tabel
tam jest mnóstwo i jak widzę niektóre mają po 40 kolumn - masakra
Re: Technologia i ceny użytych częsci
czy to nie jest PTZ_Cena DECIMAL(15,4) Cena ewidencyjna w CDN.ProdTechnologiaZasoby ?
--------------------------------
Pozdrawiam
WW
Pozdrawiam
WW
Re: Technologia i ceny użytych częsci
Faktycznie , dzięki za podpowiedź 
Muszę tylko to jakoś złączyć bo LEFT JOIN od razu sypie błędami.
Muszę tylko to jakoś złączyć bo LEFT JOIN od razu sypie błędami.
Re: Technologia i ceny użytych częsci
Tą wartość zwraca funkcja którą użyłeś cdn.prodbom
--------------------------------
Pozdrawiam
WW
Pozdrawiam
WW
Re: Technologia i ceny użytych częsci
Faktycznie , podpiąłem po prostu żeby pokazywał mi tą kolumnę PTZ_Cena ale widzę wszędzie same 0,00 tak jakby nie brał cen zakupu albo ich ktoś w bazie nie uzupełniał - chociaż firma działa towar przychodzi i produkują. Można to jakoś podpiąć pod PZ żeby brał ceny w/g kodu produktu z ostatnich zamówień ?
Re: Technologia i ceny użytych częsci
Nie jestem obeznany z modułem produkcyjnym.
Spróbuj odczytać PKE_Kwota z podłączenia CDN.ProdZasoby warunkiem PTZ_Id=PZA_TechnologiaZasob
następnie CDN.ProdKosztyElem on PZA_ID=PKE_ObiNumer
Spróbuj odczytać PKE_Kwota z podłączenia CDN.ProdZasoby warunkiem PTZ_Id=PZA_TechnologiaZasob
następnie CDN.ProdKosztyElem on PZA_ID=PKE_ObiNumer
--------------------------------
Pozdrawiam
WW
Pozdrawiam
WW
Re: Technologia i ceny użytych częsci
Tak to spiąłem ale wszędzie w tej kolumnie mam NULL 
SELECT
PTZ_Kod AS kod,
PTZ_Nazwa AS nazwa,
PTZ_Ilosc AS ilosc,
PTZ_Jednostka jednostka,
PTZ_Cena cena,
CASE
WHEN PTZ_Jednostka = '0' THEN CAST(ROUND(SUM(PTZ_Ilosc), 0) AS INTEGER)
ELSE CAST(ROUND(SUM(PTZ_Ilosc), 2) AS INTEGER)
END AS ilosc_short,
STUFF((
SELECT '|- ' +
FORMAT(s.IloscMag, 'N0') + ' szt. - ' + s.Magazyn + ' -|'
FROM CDN.IFS_Stany s
WHERE CDN.ProdBOM.PTZ_Kod = s.Towar
FOR XML PATH('')
), 1, 2, '') AS stany_magazynowe,
SUM(s.IloscMag) AS razem_ilosc,
CASE
WHEN PTZ_Ilosc <> 0 THEN CAST(ROUND(SUM(s.IloscMag) / PTZ_Ilosc, 2) AS DECIMAL(18,2))
ELSE 0
END AS zapas,
CASE
WHEN PTZ_Ilosc <> 0 THEN CAST(ROUND(SUM(CASE WHEN s.Magazyn IN ('komp', 'temp') THEN s.IloscMag ELSE 0 END) , 2) AS DECIMAL(18,2))
ELSE 0
END AS ilosc_temp_komp,
CASE
WHEN PTZ_Ilosc <> 0 THEN CAST(ROUND(SUM(CASE WHEN s.Magazyn IN ('komp', 'temp') THEN s.IloscMag ELSE 0 END) / PTZ_Ilosc, 2) AS DECIMAL(18,2))
ELSE 0
END AS zapas_temp_komp,
PKE_Kwota
FROM CDN.ProdBOM(7107)
LEFT JOIN CDN.IFS_Stany s ON CDN.ProdBOM.PTZ_Kod = s.Towar
LEFT JOIN CDN.ProdZasoby on PTZ_Id=PZA_TechnologiaZasob
LEFT JOIN CDN.ProdKosztyElem on PZA_ID=PKE_ObiNumer
GROUP BY PTZ_Kod, PTZ_Nazwa, PTZ_Jednostka, PTZ_Ilosc,PTZ_Cena,PKE_Kwota
ORDER BY nazwa
SELECT
PTZ_Kod AS kod,
PTZ_Nazwa AS nazwa,
PTZ_Ilosc AS ilosc,
PTZ_Jednostka jednostka,
PTZ_Cena cena,
CASE
WHEN PTZ_Jednostka = '0' THEN CAST(ROUND(SUM(PTZ_Ilosc), 0) AS INTEGER)
ELSE CAST(ROUND(SUM(PTZ_Ilosc), 2) AS INTEGER)
END AS ilosc_short,
STUFF((
SELECT '|- ' +
FORMAT(s.IloscMag, 'N0') + ' szt. - ' + s.Magazyn + ' -|'
FROM CDN.IFS_Stany s
WHERE CDN.ProdBOM.PTZ_Kod = s.Towar
FOR XML PATH('')
), 1, 2, '') AS stany_magazynowe,
SUM(s.IloscMag) AS razem_ilosc,
CASE
WHEN PTZ_Ilosc <> 0 THEN CAST(ROUND(SUM(s.IloscMag) / PTZ_Ilosc, 2) AS DECIMAL(18,2))
ELSE 0
END AS zapas,
CASE
WHEN PTZ_Ilosc <> 0 THEN CAST(ROUND(SUM(CASE WHEN s.Magazyn IN ('komp', 'temp') THEN s.IloscMag ELSE 0 END) , 2) AS DECIMAL(18,2))
ELSE 0
END AS ilosc_temp_komp,
CASE
WHEN PTZ_Ilosc <> 0 THEN CAST(ROUND(SUM(CASE WHEN s.Magazyn IN ('komp', 'temp') THEN s.IloscMag ELSE 0 END) / PTZ_Ilosc, 2) AS DECIMAL(18,2))
ELSE 0
END AS zapas_temp_komp,
PKE_Kwota
FROM CDN.ProdBOM(7107)
LEFT JOIN CDN.IFS_Stany s ON CDN.ProdBOM.PTZ_Kod = s.Towar
LEFT JOIN CDN.ProdZasoby on PTZ_Id=PZA_TechnologiaZasob
LEFT JOIN CDN.ProdKosztyElem on PZA_ID=PKE_ObiNumer
GROUP BY PTZ_Kod, PTZ_Nazwa, PTZ_Jednostka, PTZ_Ilosc,PTZ_Cena,PKE_Kwota
ORDER BY nazwa
Re: Technologia i ceny użytych częsci
Post autor: dark7117 » 22 kwie 2024, 19:09
Znalazłem to w programie w module produkcja jak wejdę w konkretną technologię to mogę poprzez wykres i włączyć oblicz.
Widzę wtedy te dane ale skąd program to bierze ???
Mam tam kolumny :
Kod_Surowca_Tech | Nazwa_Surowca_Tech|TowarKod|Towar_Nazwa |.... |Ilosc,Dostawca | Cena | Wartosc | Waluta
Znalazłem to w programie w module produkcja jak wejdę w konkretną technologię to mogę poprzez wykres i włączyć oblicz.
Widzę wtedy te dane ale skąd program to bierze ???
Mam tam kolumny :
Kod_Surowca_Tech | Nazwa_Surowca_Tech|TowarKod|Towar_Nazwa |.... |Ilosc,Dostawca | Cena | Wartosc | Waluta
Re: Technologia i ceny użytych częsci
Zajrzyj zatem do SQL wykresu.
--------------------------------
Pozdrawiam
WW
Pozdrawiam
WW