求一条Sql语句

jycrystal2002 2010-07-25 06:04:40
现有一个表,表结构
[ID] [int] IDENTITY(1,1) NOT NULL,
[EmpID] [int] NULL,
[EmpName] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[EmpNum] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[EmpDept] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[Manager] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[Context] [varchar](max) COLLATE Chinese_PRC_CI_AS NULL,
[Score] [float] NULL,
[Date] [datetime] NULL,
[DealDept] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[ManageMent] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[IsAdd] [bit] NULL,
[InDate] [datetime] NULL,
[Result] [varchar](max) COLLATE Chinese_PRC_CI_AS NULL

要求以Date为条件,统计本周,本月,本季度,本年的总分,并且每次的分数也要显示,我现在的写法是用 sum() over 加join on ,但是2个条件还行,4个条件就要join on 3次,感觉很麻烦,有谁有好的解决办法吗?
我自己的Sql语句

select *,totalW=sum(Score) OVER (partition BY Score.[EmpName]) from Score left join (select ID,totalM=sum(Score) OVER (partition BY [EmpName]) from Score where IsAdd='" + state + "' and Date between '" + barEditItem5.EditValue + "' and '" + barEditItem6.EditValue + "') as tb on Score.ID=tb.ID where Date between '" + barEditItem1.EditValue + "' and '" + barEditItem2.EditValue + "' and IsAdd='" + state + "' order by Manager,EmpDept

小弟第一次发帖,大家多多关照啊
...全文
121 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jycrystal2002 2010-07-26
  • 打赏
  • 举报
回复
谢谢,还真忘了有case了,问题已解决,不行了不行了,脑子不好使了。再问一下,我想只显示有统计数据的,但是用case 如果时间段内没有分数,会显示null,我不想要显示这个null,但是没法加条件,难道要再select一遍?请问有什么好的办法?马上结贴了。
波导终结者 2010-07-25
  • 打赏
  • 举报
回复
用case不就完了
sum(case when 本周 then score end) as week,
sum(case when 本月 then score end) as month
……
手写的,不知道语法是不是完全正确,反正就这思路
jycrystal2002 2010-07-25
  • 打赏
  • 举报
回复
重点不在分组,在于统计,周,月,季度,年都要统计并且在同一行里显示,
比如
id name Score date
1 张三 1 2010-7-11
2 张三 1 2010-7-19
3 张三 1 2010-8-11
4 张三 1 2010-12-11
5 张三 1 2010-4-5
统计出来就应该是

id name Score date week month Quarter Year
1 张三 1 2010-7-11 1 2 4 5
2 张三 1 2010-7-19 1 2 4 5
3 张三 1 2010-8-11 1 2 4 5
4 张三 1 2010-12-11 1 2 4 5
5 张三 1 2010-4-5 1 2 4 5
波导终结者 2010-07-25
  • 打赏
  • 举报
回复
你都用DevExpress了,直接用自带的分组功能不就行了
wuyq11 2010-07-25
  • 打赏
  • 举报
回复
datediff(day,日期,getdate())=0
周 day week
月 day month
年 day ear
select sum(b,month([date]) from Tb re year([date]) = '2010'
group by month([date])

anbin0814 2010-07-25
  • 打赏
  • 举报
回复
bang ding
jycrystal2002 2010-07-25
  • 打赏
  • 举报
回复
没有,我想问问有什么好办法没?还有join on 的次数多了对效率有影响吗?
jycrystal2002 2010-07-25
  • 打赏
  • 举报
回复
重贴,重贴,问个问题都这么郁闷
huwei12345 2010-07-25
  • 打赏
  • 举报
回复
自问自答?
jycrystal2002 2010-07-25
  • 打赏
  • 举报
回复
为什么图片没有显示全?
jycrystal2002 2010-07-25
  • 打赏
  • 举报
回复
算了,上图吧,不会贴查询数据,要求的就是图上的统计效果,这个只有周,季度总和
jycrystal2002 2010-07-25
  • 打赏
  • 举报
回复
原始数据

1 张小军 生产部 生产口 二、三、五车间工作任务未提报连带20%。 0.3 2010-07-12 00:00:00.000 考评办 0 2010-07-24 11:35:46.000
2 李振鑫 三车间 生产口 工作任务未提报。 0.5 2010-07-12 00:00:00.000 考评办 0 2010-07-24 11:35:46.000
3 邢廷广 二车间 生产口 员工动态和工作任务未提报。 0.5 2010-07-12 00:00:00.000 考评办 0 2010-07-24 11:35:46.000
4 梁彦华 生产部 生产口 日报表上交不及时(2010.06.24-2010.07.12)。 1 2010-07-13 00:00:00.000 考评办 0 2010-07-24 11:35:46.000
5 史红英 综合副总办 综合口 日报表上交不及时(2010.06.29-2010.07.01/12)。 0.3 2010-07-13 00:00:00.000 考评办 0 2010-07-24 11:35:46.000
6 孟兵 技术中心 技术口 日报表上交不及时(2010.07.02-2010.07.12)。 0.5 2010-07-13 00:00:00.000 考评办 0 2010-07-24 11:35:46.000
7 王新玲 监察部 监管口 日报表上交不及时(2010.06.25-2010.07.12)。 1 2010-07-13 00:00:00.000 考评办 0 2010-07-24 11:35:46.000
8 王凤伟 质量控制部 监管口 部门记分统计表出现多处错误。 0.5 2010-07-13 00:00:00.000 考评办 0 2010-07-24 11:35:46.000
9 赵中学 总务部 综合口 部门记分统计表迟交。 0.5 2010-07-13 00:00:00.000 考评办 0 2010-07-24 11:35:46.000
10 梁彦华 生产部 生产口 所辖员工打卡管理不到位。 0.3 2010-07-15 00:00:00.000 考评办 0 2010-07-24 11:35:46.000
11 耿凤芝 秘书处 行政口 四车间卫生间卫生差连带。 0.2 2010-07-16 00:00:00.000 考评办 0 2010-07-24 11:35:46.000
12 梁彦华 生产部 生产口 四车间卫生间卫生差连带。 0.3 2010-07-16 00:00:00.000 考评办 0 2010-07-24 11:35:46.000
13 冷建强 四车间 生产口 四车间卫生间卫生差处理。 1 2010-07-16 00:00:00.000 考评办 0 2010-07-24 11:35:46.000

我查询后的结果

孟兵 技术中心 技术口 日报表上交不及时(2010.07.02-2010.07.12)。 0.5 2010-07-13 00:00:00.000 考评办 0.5
王新玲 监察部 监管口 日报表上交不及时(2010.06.25-2010.07.12)。 1 2010-07-13 00:00:00.000 考评办 1
王凤伟 质量控制部 监管口 部门记分统计表出现多处错误。 0.5 2010-07-13 00:00:00.000 考评办 0.5
邢廷广 二车间 生产口 员工动态和工作任务未提报。 0.5 2010-07-12 00:00:00.000 考评办 0.5
李振鑫 三车间 生产口 工作任务未提报。 0.5 2010-07-12 00:00:00.000 考评办 0.5
梁彦华 生产部 生产口 日报表上交不及时(2010.06.24-2010.07.12)。 1 2010-07-13 00:00:00.000 考评办 1.6
梁彦华 生产部 生产口 四车间卫生间卫生差连带。 0.3 2010-07-16 00:00:00.000 考评办 1.6
梁彦华 生产部 生产口 所辖员工打卡管理不到位。 0.3 2010-07-15 00:00:00.000 考评办 1.6
张小军 生产部 生产口 二、三、五车间工作任务未提报连带20%。 0.3 2010-07-12 00:00:00.000 考评办 0.3
冷建强 四车间 生产口 四车间卫生间卫生差处理。 1 2010-07-16 00:00:00.000 考评办 1
耿凤芝 秘书处 行政口 四车间卫生间卫生差连带。 0.2 2010-07-16 00:00:00.000 考评办 0.2
史红英 综合副总办 综合口 日报表上交不及时(2010.06.29-2010.07.01/12)。 0.3 2010-07-13 00:00:00.000 考评办 0.3
赵中学 总务部 综合口 部门记分统计表迟交。 0.5 2010-07-13 00:00:00.000 考评办 0.5

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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