条件SQL

QiQi_yun 2008-09-17 10:35:37
select a.BlockID as '卡号',
sum(a.SavingTotal)as '期初累计充值',
sum(a.ProductMoney+a.ServerMoney) as '本次充值',
sum (a.SavingTotal+a.ProductMoney+a.ServerMoney) as '充值合计',
sum(case when datediff(day,b.ConsumeDate,getdate())=0 then (b.ProductMoney+b.ServiceItemMoney+b.ServiceCardMoney) else 0 end )as '本日消费',
sum(case when datediff(month,b.ConsumeDate,getdate())=0 then (b.ProductMoney+b.ServiceItemMoney+b.ServiceCardMoney) else 0 end)as '本月累计消费',
sum(a.AlreadlyConsume)as '已消费金额',
sum(a.[Money]) as '卡内余额'
from tb_ConsumeCar as a
,tb_ClientConsume as b
where a.BlockID=b.BlockID
and ( b.SortType =0 or b.SortType =1 or b.SortType =2)
group by a.BlockID


以上SQL是正确可运行
但是在where后面还要加上以下条件:(意思是'本日消费'大于0才显示)
sum(case when datediff(day,b.ConsumeDate,getdate())=0 then (b.ProductMoney+b.ServiceItemMoney+b.ServiceCardMoney) else 0 end )as '本日消费',

谢谢各位高手,我努力学习中...
P:BS一下自己,为这条SQL语句,我问了二次了....不好意思!!
...全文
104 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
QiQi_yun 2008-09-17
  • 打赏
  • 举报
回复
呜呜不好意思4楼,怪我结贴太积极了,没有分给你了!!

对不起!!
utpcb 2008-09-17
  • 打赏
  • 举报
回复
select*from 

(select a.BlockID as '卡号',
sum(a.SavingTotal)as '期初累计充值',
sum(a.ProductMoney+a.ServerMoney) as '本次充值',
sum (a.SavingTotal+a.ProductMoney+a.ServerMoney) as '充值合计',
sum(case when datediff(day,b.ConsumeDate,getdate())=0 then (b.ProductMoney+b.ServiceItemMoney+b.ServiceCardMoney) else 0 end )as '本日消费',
sum(case when datediff(month,b.ConsumeDate,getdate())=0 then (b.ProductMoney+b.ServiceItemMoney+b.ServiceCardMoney) else 0 end)as '本月累计消费',
sum(a.AlreadlyConsume)as '已消费金额',
sum(a.[Money]) as '卡内余额'
from tb_ConsumeCar as a
,tb_ClientConsume as b
where a.BlockID=b.BlockID
and ( b.SortType =0 or b.SortType =1 or b.SortType =2)
group by a.BlockID
) t
where 本日消费>0
QiQi_yun 2008-09-17
  • 打赏
  • 举报
回复
select a.BlockID as '卡号',
sum(a.SavingTotal)as '期初累计充值',
sum(a.ProductMoney+a.ServerMoney) as '本次充值',
sum (a.SavingTotal+a.ProductMoney+a.ServerMoney) as '充值合计',
sum(case when datediff(day,b.ConsumeDate,getdate())=0 then (b.ProductMoney+b.ServiceItemMoney+b.ServiceCardMoney) else 0 end )as '本日消费',
sum(case when datediff(month,b.ConsumeDate,getdate())=0 then (b.ProductMoney+b.ServiceItemMoney+b.ServiceCardMoney) else 0 end)as '本月累计消费',
sum(a.AlreadlyConsume)as '已消费金额',
sum(a.[Money]) as '卡内余额'
from tb_ConsumeCar as a
,tb_ClientConsume as b
where a.BlockID=b.BlockID
and ( b.SortType =0 or b.SortType =1 or b.SortType =2)
group by a.BlockID
having (sum(case when datediff(day,b.ConsumeDate,getdate())=0 then (b.ProductMoney+b.ServiceItemMoney+b.ServiceCardMoney) else 0 end )>0)

呵呵,我刚刚想到的是这个
不过也感谢二位!
  • 打赏
  • 举报
回复
问题解决了就行,谁都有这么一个过程,不用bs自己
中国风 2008-09-17
  • 打赏
  • 举报
回复
加上
having sum(case when datediff(day,b.ConsumeDate,getdate())=0 then (b.ProductMoney+b.ServiceItemMoney+b.ServiceCardMoney) else 0 end )>0

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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