Strona 1 z 1

zapytanie wyciągające ilość na magazynie

: 03 lut 2016, 09:59
autor: wojtek
Witam

pracuje nad zapytaniem które wyciągnie ilość na magazynie z tabeli cdn.twrzasoby, wszystko jest ok jeśli dany indeks znajduje się na magazynie, problem jeśli jego stan jest "0", wówczas nic się nie wyświetla ponieważ nie ma rekordów w tabeli cdn.twrzasoby.

Jak zrobić aby w takiej sytuacji pokazał 0, tak jak robi to ERPXL

SELECT twr_kod,twr_nazwa,twr_jm, twz_ilmag, mag_kod
from cdn.TwrKarty
inner join cdn.twrzasoby on twr_gidnumer=twz_twrnumer
inner join cdn.magazyny on twz_magnumer=mag_gidnumer
where twr_kod in ('500-0-100-000026')

pozdrawiam

Re: zapytanie wyciągające ilość na magazynie

: 03 lut 2016, 10:30
autor: sebek
Witam,

Kod: Zaznacz cały

SELECT twr_kod,twr_nazwa,twr_jm, isnull(twz_ilmag,0), mag_kod	
from cdn.TwrKarty 
left join cdn.twrzasoby on twr_gidnumer=twz_twrnumer	
left join cdn.magazyny on twz_magnumer=mag_gidnumer 
where twr_kod in ('500-0-100-000026')
Pozdrawiam,
Sebek

Re: zapytanie wyciągające ilość na magazynie

: 03 lut 2016, 11:17
autor: wojtek
Dzięki, ale dodają warunek odnośnie magazynu, aby pokazywał tylko z jednego magazynu zasoby ?

taka wersja nie działa, chodzi o to aby jeśli jest jakiś indeks na M-10 to niech pokaże ile, a jeśli nie ma to niech pokaże 0

SELECT twr_kod,twr_nazwa,twr_jm, isnull(twz_ilmag,0), mag_kod
from cdn.TwrKarty
left join cdn.twrzasoby on twr_gidnumer=twz_twrnumer
left join cdn.magazyny on twz_magnumer=mag_gidnumer
where twr_kod in ('500-0-100-000026') and mag_kod='M-10'

Re: zapytanie wyciągające ilość na magazynie

: 03 lut 2016, 15:30
autor: taszek

Kod: Zaznacz cały

DECLARE @MagKod varchar(10)
SET @MagKod = 'M-10'

SELECT Twr_Kod
		,Twr_Nazwa
		,Twr_Jm
		,(SELECT ISNULL((SELECT SUM(TwZ_IlMag)
			FROM CDN.TwrZasoby
			JOIN CDN.Magazyny ON TwZ_MagNumer = MAG_GIDNumer AND TwZ_MagTyp = MAG_GIDTyp
			WHERE MAG_Kod = @MagKod AND TwZ_TwrNumer = Twr_GIDNumer AND TwZ_TwrTyp = Twr_GIDTyp
			GROUP BY TwZ_TwrNumer, TwZ_TwrTyp),0)) 'IlMag'
		,@MagKod 'Mag_Kod'
FROM CDN.TwrKarty
WHERE Twr_Kod IN ('500-0-100-000026')
lub

Kod: Zaznacz cały

DECLARE @MagKod varchar(10)
SET @MagKod = 'M-10'

SELECT Twr_Kod
		,Twr_Nazwa
		,Twr_Jm
		,ISNULL(Mag.IlMag,0)
		,@MagKod 'MagKod'
FROM CDN.TwrKarty
LEFT JOIN (SELECT TwZ_TwrNumer, TwZ_TwrTyp, SUM(TwZ_IlMag) 'IlMag'
			FROM CDN.TwrZasoby
			JOIN CDN.Magazyny ON TwZ_MagNumer = MAG_GIDNumer AND TwZ_MagTyp = MAG_GIDTyp
			WHERE MAG_Kod = @MagKod 
			GROUP BY TwZ_TwrNumer, TwZ_TwrTyp) AS Mag ON Mag.TwZ_TwrNumer = Twr_GIDNumer AND Mag.TwZ_TwrTyp = Twr_GIDTyp
WHERE Twr_Kod IN ('500-0-100-000026')

Re: zapytanie wyciągające ilość na magazynie

: 03 lut 2016, 15:50
autor: wojtek
właśnie o to mi chodziło, dzięki za pomoc.

pozdrawiam