SQL 二次查询问题(2个Select查询)

micher_yan 2008-09-11 04:20:31
目的:在原表的基础上需要附加一个yyyyMMdd字段,该字段通过case字句从原表的BEGIN_LOAD_TIME字段转换得来,然后需要按yyyyMMdd进行分组查询,计算出一个月之内每天的统计数据。
计算并附加yyyyMMdd如下(注意:'19:30:00'条件会通过参数传入,且case字句的内容也有可能改变,即附加的yyyyMMdd字段是动态条件,无法固定):
SELECT *,CASE WHEN RIGHT(BEGIN_LOAD_TIME, 8) < '19:30:00' THEN LEFT(BEGIN_LOAD_TIME, 10) ELSE LEFT(CONVERT(varchar(19), dateadd([d], 1, CONVERT(datetime,BEGIN_LOAD_TIME)), 20), 10) END AS yyyyMMdd
FROM V_OUTPUT_HISTORY
请教:如何在附加yyyyMMdd字段的基础上进行再次的分组查询?
...全文
908 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
muyebo 2009-05-13
  • 打赏
  • 举报
回复
学习
micher_yan 2008-09-11
  • 打赏
  • 举报
回复
见鬼了,我日,上午我也是按照1楼的思路写的,死活不行,刚想回帖否决1楼,想想还是试了一下。
居然成了,可能上午还是写错了。
感谢1楼!
dawugui 2008-09-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 micher_yan 的帖子:]
目的:在原表的基础上需要附加一个yyyyMMdd字段,该字段通过case字句从原表的BEGIN_LOAD_TIME字段转换得来,然后需要按yyyyMMdd进行分组查询,计算出一个月之内每天的统计数据。
计算并附加yyyyMMdd如下(注意:'19:30:00'条件会通过参数传入,且case字句的内容也有可能改变,即附加的yyyyMMdd字段是动态条件,无法固定):
SELECT *,CASE WHEN RIGHT(BEGIN_LOAD_TIME, 8) < '19:30:00' THEN LEFT(BEGIN_LOAD_TIME, 10) ELSE…
[/Quote]
--哦,这样?

select yyyyMMdd , sum(某字段),avg(某字段),max(某字段) ...
(SELECT *,CASE WHEN RIGHT(BEGIN_LOAD_TIME, 8) < '19:30:00' THEN LEFT(BEGIN_LOAD_TIME, 10) ELSE LEFT(CONVERT(varchar(19), dateadd([d], 1, CONVERT(datetime,BEGIN_LOAD_TIME)), 20), 10) END AS yyyyMMdd
FROM V_OUTPUT_HISTORY
) t
group by yyyyMMdd
dawugui 2008-09-11
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20080911/14/86211090-5f32-40ac-be61-8e7d3d8cab2a.html?531352864

此贴的5楼.
Garnett_KG 2008-09-11
  • 打赏
  • 举报
回复


SELECT 字段列表....
FROM (
SELECT *,
CASE WHEN RIGHT(BEGIN_LOAD_TIME, 8) < '19:30:00' THEN LEFT(BEGIN_LOAD_TIME, 10)
ELSE LEFT( CONVERT(varchar(19),
dateadd([d], 1, CONVERT(datetime,BEGIN_LOAD_TIME)), 20)
,10)
END AS yyyyMMdd
FROM V_OUTPUT_HISTORY
) as Tmp
GROUP BY yyyyMMdd


22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧