Hi ALL! Please help....
I have 2 tables... header -------------- id type_ DATA: --------------- id type_ 1 1 2 1 3 2 items -------------- header_id item_id quantity DATA: ---------------- header_id item_id quant 1 1 10 1 2 20 2 1 100 2 2 200 3 1 20 3 2 15 "header" is the moving type, and "items" is the items table. If header.type_ is "1" then incoming move, if "2" outgoing move. I would like to calculate incoming and outgoing quantity of items. (stock) I have a query: SELECT i1.item_ID, SUM(i1.quant) as Incoming, SUM(IF(i2.quant is NULL, 0,i2.quant)) as Outgoing FROM header h1 INNER JOIN items i1 ON i1.header_ID=h1.id LEFT JOIN header h2 ON h2.type_="2" LEFT JOIN items i2 ON i2.header_ID=h2.id AND i1.item_ID=i2.item_ID WHERE h1.type_="1" GROUP BY i1.item_ID Result: item_ID Incoming Outgoing 1 110 40 2 220 30 The incoming is OK, but the outgoing is wrong .... I can't find solution! I have mysql v4.0.18 I can't use subselect!! Thanx! Best Regards! ----------------------------------------------------------------------------------------------------------- USE test; # # Table structure for table 'header' # DROP TABLE IF EXISTS header; CREATE TABLE header ( id char(18) NOT NULL default '', type_ tinyint(3) unsigned default NULL, PRIMARY KEY (id), UNIQUE KEY id (id), KEY id_2 (id) ) TYPE=MyISAM; # # Dumping data for table 'header' # INSERT INTO header VALUES("1", "1"); INSERT INTO header VALUES("2", "1"); INSERT INTO header VALUES("3", "2"); # # Table structure for table 'items' # DROP TABLE IF EXISTS items; CREATE TABLE items ( header_id char(18) NOT NULL default '', item_id char(18) NOT NULL default '', quant int(3) unsigned default NULL, PRIMARY KEY (header_id,item_id), KEY header_id (header_id,item_id) ) TYPE=MyISAM; # # Dumping data for table 'items' # INSERT INTO items VALUES("1", "1", "10"); INSERT INTO items VALUES("1", "2", "20"); INSERT INTO items VALUES("2", "1", "100"); INSERT INTO items VALUES("2", "2", "200"); INSERT INTO items VALUES("3", "1", "20"); INSERT INTO items VALUES("3", "2", "15");