-2
Diese Meine Anfrage,Wie vereinfacht man diese Abfrage?
SELECT item_id,prod_name,closein,closeout,closein-closeout as closing_stock,stockin,closein-closeout+ stockin as current_balnce,stockout,
closein-closeout+ stockin-stockout as balance,QtyIn,QtyOut
FROM (
SELECT b.prod_name,a.item_id,
(select COALESCE ((select sum(qty) from stock_leger_head k
join mas_prodt_name_hd b ON k.item_id = b.id
where k.dept_id=21 and k.flag= 'I' and cast(k.date as date)::date between '2017-03-01' and '2017-04-06' and k.item_id=a.item_id),0)as QtyIn),
(select COALESCE ((select sum(qty) from stock_leger_head k
join mas_prodt_name_hd b ON k.item_id = b.id
where k.dept_id=21 and k.flag= 'O' and cast(k.date as date)::date between '2017-03-01' and '2017-04-06' and k.item_id=a.item_id),0)as QtyOut),
(select COALESCE ((select sum(qty) from stock_leger_head k
join mas_prodt_name_hd b ON k.item_id = b.id
where k.dept_id=21 and k.flag= 'I' and cast(k.date as date)::date <='2017-02-28' and k.item_id=a.item_id),0)as closein),
(select COALESCE ((select sum(qty) from stock_leger_head k
join mas_prodt_name_hd b ON k.item_id = b.id
where k.dept_id=21 and k.flag= 'O' and cast(k.date as date)::date <='2017-02-28' and k.item_id=a.item_id),0)as closeout),
(select COALESCE ((select sum(qty) from stock_leger_head k
join mas_prodt_name_hd b ON k.item_id = b.id
where k.dept_id=21 and k.flag= 'I' and cast(k.date as date)::date between '2017-03-01' and '2017-04-06' and k.item_id=a.item_id),0)as stockin),
(select COALESCE ((select sum(qty) from stock_leger_head k
join mas_prodt_name_hd b ON k.item_id = b.id
where k.dept_id=21 and k.flag= 'O' and cast(k.date as date)::date between '2017-03-01' and '2017-04-06' and k.item_id=a.item_id),0)as stockout)
FROM stock_leger_head a INNER JOIN
mas_prodt_name_hd b ON a.item_id = b.id
where a.dept_id=21
GROUP BY a.item_id,b.prod_name order by item_id asc
Dank
Mit welcher Datenbank? MySQL * oder * Postgres? – tadman
Ich benutze Posygres. –
Die Tags sind hier sehr wichtig, so finden die Leute Ihre Fragen. Dies als MySQL zu kennzeichnen ist irreführend. Sei vorsichtig und überprüfe es, es hilft, die Dinge organisiert zu halten. – tadman