要显示的结果是这样的
数据库大致是这样的
比如说 2月14日没有消耗混凝土就不会有数据记录
但2月15日消耗了 就会有记录 然后我就不会了 求帮助
SELECT * FROM ( SELECT A.TYPE, A.NUMBER, B.TIME FROM [材料表] A, [关联表] B WHERE A.REGION_ID = B.REGION_ID ) T PIVOT ( SUM(T.NUMBER) FOR B.TIME IN ('2.14', '2.15', '2.16', '2.17', '2.18', '2.19') )
如果 SQL SERVER 版本比较低, 不支持 PIVOT 可以使用
SELECT
A.TYPE,
SUM(CASE WHEN B.TIME = '2.14' THEN A.NUMBER ELSE 0 END) '2.14',
SUM(CASE WHEN B.TIME = '2.15' THEN A.NUMBER ELSE 0 END) '2.15'
...
FROM [材料表] A, [关联表] B
WHERE A.REGION_ID = B.编号
GROUP BY A.TYPE
@过于执著: 这种方法是可以的,我用的mysql,PIVOT 不能使用。
十分感谢。
这样SQL server转不了,不过自己用代码写一下也就有了。
求明示啊
@放纵的野性: 用代码应该怎么做呢,我都想了一天了,还是不太明白