我用这个语句查询,SELECT DATEPART(month, 下单日期) AS ex1, SUM(新版+旧版) AS ex2
FROM 生产数据表
where (工艺 LIKE '电雕' OR 工艺 LIKE '手工') and
(下单日期 BETWEEN '2010-1-1' AND '2010-12-31')
GROUP BY DATEPART(month,下单日期)
ORDER BY DATEPART(month,下单日期)
由于有可能出现某几个月没有订单,所以结果会出现
ex1 ex2
2 55
3 66
6 77
7 88
10 99
有没有办法让结果为,也就是没有订单的月份填充0
ex1 ex2
1 00
2 55
3 66
....
yejhui
FROM 生产数据表
where (工艺 LIKE '电雕' OR 工艺 LIKE '手工') and
(下单日期 BETWEEN '2010-1-1' AND '2010-12-31')
GROUP BY DATEPART(month,下单日期)
ORDER BY DATEPART(month,下单日期)
由于有可能出现某几个月没有订单,所以结果会出现
ex1 ex2
2 55
3 66
6 77
7 88
10 99
有没有办法让结果为,也就是没有订单的月份填充0
ex1 ex2
1 00
2 55
3 66
....
yejhui
解决方案 »
- SQL语句插入 smallint 类型的数据
- 数据库连接出错,请检查Conn.asp中的数据库指向
- SQL SERVER 如何查询两条记录之间的时间间隔?
- 一个用户库想共享给别的库使用,我通过视图,但想加一些关系就不能加了,外键约束只能用在用户表,不知我的思路有问题还是有什么好的解决方法
- |M| 两个表操作 大家看看SQL要怎么写
- sql server templog持续增大影响其他操作人员操作数据库速度
- sql语句如何区别大小写??
- 未能在数据'ST'中运行Begin transaction 因为该数据是只读的 这是怎么回事哦?
- 我急急在线等待!怎样将数据库从一台服务器(NT4+SQL7.0)移到另一台服务器(WIN2000SERVER+SQL2000)
- 连接局域网上另外一台机子上sql server2000的connectionstring是怎样的啊?
- Sql 的条件插入
- 为用户赋予执行存储过程的权限
没看太懂,,,谅解、
SELECT A.ID,DATEPART(month, B.下单日期) AS ex1, SUM(B.新版+B.旧版) AS ex2
FROM
(SELECT TOP 12 ROW_NUMBER() OVER(ORDER BY GETDATE()) AS ID FROM SYS.COLUMNS) AS A LEFT JOIN
生产数据表 AS B ON A.ID = B.DATEPART(month, B.下单日期)
WHERE (B.工艺 LIKE '电雕' OR B.工艺 LIKE '手工') and
(B.下单日期 BETWEEN '2010-1-1' AND '2010-12-31')
GROUP BY DATEPART(month,B.下单日期)
ORDER BY DATEPART(month,B.下单日期)
(
select 1 ex1 union
select 2 ex1 union
select 3 ex1 union
select 4 ex1 union
select 5 ex1 union
select 6 ex1 union
select 7 ex1 union
select 8 ex1 union
select 9 ex1 union
select 10 ex1 union
select 11 ex1 union
select 12 ex1
) m
left join
(
SELECT DATEPART(month, 下单日期) AS ex1, SUM(新版+旧版) AS ex2
FROM 生产数据表
where (工艺 LIKE '电雕' OR 工艺 LIKE '手工') and
(下单日期 BETWEEN '2010-1-1' AND '2010-12-31')
GROUP BY DATEPART(month,下单日期)
) n
on m.ex1 = n.ex1
order by m.ex1
http://topic.csdn.net/u/20110621/10/3b6a20b9-a2d2-481e-96f2-b63275635cfe.html