求一条SQL语句帮帮忙吧
会员表 客户ID 会员ID 会员类型ID 部门ID 注册日期
会员类型表 会员类型ID 会员类型0为充值卡1为次数卡 会员名字
充值记录表 会员ID 金额 充值的部门ID
因为他们有6个店所有充值的时候要考虑这个卡是否卡段充值了
会员卡 数量 本店销售金额 跨店销售金额(会员卡充值)
学生卡 10 180.00 0.00
会员卡储值 58 17650.00 4160.00
我现在取不出数量,因为关联后会员表和充值表示一对多关系,一分组求count取出来的数量是充值次数而不是卖卡数量。然后我就分2次取,第一次取销售卡,本店充值,别的店在本店充值。 第2次取只取会员表取卖出去的卡数量。 然后2个结果插入临时表。
取会员卡, 本店销售金额,跨店销售金额
select b.VipName VipName,sum(c.RechAmount) price,sum(isnull(d.RechAmount,0)) Kdprice from Customer a
left join VIpType b on a.vipno=b.vipno
left join RechargeRecord c on a.customerNo=c.customerNo and a.deptno='010101' and c.DeptNo='010101'
left join RechargeRecord d on a.customerNo=d.customerNo and a.deptno='010101' and d.DeptNo<>'010101'
where a.RegisterTime>='2016-02-23 00:00:00' and a.RegisterTime<'2016-03-09 00:00:00' and b.VipType=0 and c.RechAmount is not null
group by b.VipName order by b.VipName
取数量
select b.VipName,count(b.VipName) from Customer a
left join VIpType b on a.vipno=b.vipno
where a.RegisterTime>='2016-02-23 00:00:00' and a.RegisterTime<'2016-03-09 00:00:00' and b.VipType=0 and a.deptno='010101'
group by b.VipName order by b.VipName
太麻烦了。 哪位大神能帮帮我
相关推荐
一条sql语句完成MySQL去重留一
前几天在做一个需求的时候,需要清理mysql中重复的记录,当时的想法是通过代码遍历写出来,然后觉得太复杂,心里想着应该可以通过一个sql语句来解决问题的。查了资料,请教了大佬之后得出了一个很便利的sql语句,这里分享下这段sql语句和思路。 需求分析 数据库中存在重复记录,删除保留其中一条(是否重复判断基准为多个字段) 解决方案 碰到这个需求的时候,心里大概是有思路的。最快想到的是可以通过一条sql语句来解决,无奈自己对于复杂sql语句的道行太浅,所以想找大佬帮忙。 找人帮忙 因为这个需求有点着急,所以最开始想到的是,可以找这方面的同行来解决,然后分享这个问题给同事,结果这货随便百度了一下,就
详解一条SQL语句的执行过程
SQL是一套标准,全称结构化查询语言,是用来完成和数据库之间的通信的编程语言,SQL语言是脚本语言,直接运行在数据库上。同时,SQL语句与数据在数据库上的存储方式无关,只是不同的数据库对于同一条SQL语句的底层实现不同罢了,但结果相同。 一般情况下,大部分SQL语句在不同的数据库上是通用的,但我们知道每个数据库都有自己独有的特性,像在MySql数据库中,可以使用substr(取字符串),trim(...
SQL语句删除2条重复数据一条保留一条
SQL语句2条完全一样的数据删除一条保留一条,SQL Server 2005 Express 下测试通过, 仅供参考
Mysql查询最近一条记录的sql语句(优化篇)
主要介绍了Mysql查询最近一条记录的sql语句,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
sqlserver中重复数据值只取一条的sql语句
sqlserver中有时候我们需要获取多条重复数据的一条,需要的朋友可以参考下面的语句


