mysql> SELECT * FROM store_tab; +---------+------+ | storeid | name | +---------+------+ | 1 | 一店 | | 2 | 二店 | | 3 | 三店 | | 4 | 四店 | | 5 | 五店 | +---------+------+ 5 rows in set (0.00 sec) mysql> SELECT * FROM data_tab; +--------+---------+----------+------+ | dataid | storeid | idate | inum | +--------+---------+----------+------+ | 1 | 1 | 20080701 | 100 | | 2 | 1 | 20080717 | 200 | | 3 | 2 | 20080708 | 200 | | 4 | 4 | 20080703 | 200 | | 5 | 4 | 20080711 | 100 | | 6 | 4 | 20080722 | 100 | +--------+---------+----------+------+ 6 rows in set (0.00 sec) mysql> SELECT a.name, IFNULL( sum( b.inum ) , 0 ) AS cnt -> FROM store_tab a -> LEFT JOIN data_tab b ON a.storeid = b.storeid -> AND idate >= '20080701' -> AND idate <= '20080731' -> GROUP BY a.storeid; +------+-----+ | name | cnt | +------+-----+ | 一店 | 300 | | 二店 | 200 | | 三店 | 0 | | 四店 | 400 | | 五店 | 0 | +--- --+-----+ 5 rows in set (0.00 sec) |
select temp_a.店名,ifnull(temp_b.sum_temp,0) from (select distinct 店名 from 表名) as temp_a left join (select 门店,sum(进货数量) as sum_temp from 表名 where 进货时间>='20080701' and 进货时间 <='20080731' group by 门店) as temp_b on temp_a.店名=temp_b.门店; |
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |