sqlservices怎么把竖表变横表查询当月的数据?

表1  ordertab 
表2  zg
早中晚  对应的是cdbh的1,2,3

select ordertab.qcrq,ordertab.dcsj,ordertab.cdbh,ordertab.decid,zg.zgmc from ordertab left join zg on ordertab.decid=zg.decid  where  DateDiff(dd,ordertab.qcrq,getdate())= -1

查当月的数据
如图
怎么改成 图片上的格式
 

标题

 

11111

 

SELECT DISTINCT  c.name,  
IFNULL((SELECT COALESCE(1,null) FROM b  WHERE tab = 1 and name = c.name ) ,0)AS '早餐' ,
IFNULL((SELECT COALESCE(1,null) FROM b  WHERE tab = 2 and name = c.name ),0) AS '中餐' ,
IFNULL((SELECT COALESCE(1,null) FROM b  WHERE tab = 3 and name = c.name ) ,0) AS '晚餐'
FROM b c GROUP BY c.name

你可以照着这个试一试,把你的查询结果当作一个表,有指显示没有的显示 0

 

没达到效果啊

 

IFNULL 函数用不了