mysql - Subtracting value of a particular column where a value of particular column is same in both tables -
my db has 2 tables stock
, damage.
stock
table looks like
item_code, ss_no, item_name, rack_no, shelf_no, cold_storage, batch_no, qty, packing, expiry_date, mrp, purchase_price, selling_price, margin, formulation, stock_date, min_qty, ss_flag_id, ban_flag_id, sales_discount '1', 1, 'abzorb powder', 'a-1', ' ', ' ', '9086626', 18, 1, '2017-06-01', 87.00, 66.29, 87.00, 0.00, 'powder', '2015-05-11', 0, 0, 0, 0.0
damage
table looks below
damage_stock_date, invoice_no, invoice_date, dist_name, contact_no, item_code, item_name, batch_no, mfr_name, expiry_date, qty, damaged_qty, unit_price, unit_vat, unit_discount, sub_total, total_amount, remarks, ds_flag_id, packing '2015-06-19', '56', '2015-06-19', 'ganapati drugs', '', '0', 'saxim_', '1', '', '', 50, 10, 2.00, 5.00, 0.00, 21.00, 21.00, '', 0, 0
if want select row stock value of item_name
column in both tables, use
select * stock s item_name in ( select item_name damage);
which job want.
now want subtract value of qty
col in damage
stock
's qty
col value of item_name
both columns must same.
i think have use variables don't know how..
try using join:
select *, (s.qty-d.qty) available stock s left join damage d on d.item_name=s.item_name d.qty not null
example in sql fiddle.
explanation:
a left join table damage
condition d.qty not null
same thing. same using in
(as in question). advantage that, can use columns of damage
table in main query.
so can find available quantity (s.qty-d.qty)
edit:
for updating table:
update stock s left join damage d on d.item_name = s.item_name set s.qty=(s.qty-d.qty) d.qty not null
Comments
Post a Comment