有一个表里面的内容是
字段为 单号 姓名 卡号 充值 消费
内容为 NULL 张三 9008 800.00 0.00
000089 张三 9008 0.00 100.00
000089 张三 9008 0.00 200.00
000089 张三 9008 0.00 200.00
我想得到下面的结果集SQL语句要怎么写呀
单号 姓名 卡号 余额
000089 张三 9008 300.00
字段为 单号 姓名 卡号 充值 消费
内容为 NULL 张三 9008 800.00 0.00
000089 张三 9008 0.00 100.00
000089 张三 9008 0.00 200.00
000089 张三 9008 0.00 200.00
我想得到下面的结果集SQL语句要怎么写呀
单号 姓名 卡号 余额
000089 张三 9008 300.00
from TB
group by isnull(单号,'00089'), 姓名, 卡号
from tableName
group by isnull(单号,'00089'), 姓名, 卡号
form 表名
from tableName group by 姓名
form tablename
select max(单号) as 单号, 姓名, 卡号, 余额=sum(充值) - Sum(消费)
from tableName
group by 姓名,卡号
单号 姓名 卡号 充值 消费 员工 日期
NULL 张三 9008 800.00 0.00 李 2010-10-1
000081 张三 9008 0.00 100.00 王 2010-10-2
000085 张三 9008 0.00 200.00 陈 2010-10-19
000089 张三 9008 0.00 200.00 肖 2010-12-23
NULL 李四 9003 500.00 0.00 李 2010-12-20
000091 李四 9003 0.00 200 肖 2011-1-12我想得到的結果是
单号 姓名 卡号 余額 員工 日期
000089 张三 9008 300.00 肖 2010-12-23
select max(isnull(单号,'')) as 单号,姓名,卡号,sum(充值)-sum(消费) as 余額,
max(员工) as 员工,max(日期) as 日期
from tablename
group by 姓名
max(员工) as 员工,max(日期) as 日期
from tablename
group by 姓名,卡号
不行,主要是员工不是我要的那个人?
select a.* ,b.员工 as 员工
from
(select max(isnull(单号,'')) as 单号,姓名,卡号,sum(充值)-sum(消费) as 余額,
max(日期) as 日期
from tablename
group by 姓名,卡号) a inner join
tablename b
where a.姓名=b.姓名 and a.卡号=b.卡号 and a.日期<=b.日期
select a.* ,b.员工 as 员工
from
(select max(isnull(单号,'')) as 单号,姓名,卡号,sum(充值)-sum(消费) as 余額,
max(日期) as 日期
from tablename
group by 姓名,卡号) a inner join
tablename b
on a.姓名=b.姓名 and a.卡号=b.卡号 where a.日期<=b.日期
余額=(select sum(充值)-sum(消费) from tb b where b.姓名=tb.姓名),
员工,日期
from tb
where not exists (select 1 from tb as a where a.姓名=tb.姓名 and a.单号>tb.单号)