Technologia i ceny użytych częsci
: 19 kwie 2024, 00:17
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;
"