求一个查询的SQL语句,内详,在线等……

coolchangecool 2009-07-08 01:04:09
有两张表,详细如下:
表一:客户资料,表名PI
卡号(No) 姓名(PName)
1 张三
2 李四

表二:消费记录,表名Buy
卡号(No) 金额(Money)
1 10
1 20
2 500
2 200

我期望的查询结果就是,统计出每张卡对应的消费总额,关键是要体现出姓名(我想应该很简单,但我写了很久都没成功。)
期望的结果如下:
卡号(No) 姓名(PName) 金额(Money)
1 张三 30
2 李四 700
...全文
66 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
create table tab(id int,name varchar(10))
create table xf(id int,xfje decimal(18,2))
insert tab
select 1,'张三' union
select 2,'李四' union
select 3,'王五'

insert xf
select 1,100.00 union all
select 1,350.00 union all
select 1,150.00 union all
select 2,390.00 union all
select 2,320.00 union all
select 2,150.00 union all
select 2,350.00 union all
select 3,310.00 union all
select 3,200.00 union all
select 3,430.00 union all
select 3,230.00 union all
select 3,150.00

select T1.id 编号,T1.name 姓名,sum(xfje) 消费金额
from tab T1 join
xf T2 ON T1.id=T2.id
group by T1.id ,T1.name

drop table tab,xf



(3 行受影响)

(12 行受影响)
编号 姓名 消费金额
----------- ---------- ---------------------------------------
1 张三 600.00
2 李四 1210.00
3 王五 1320.00

(3 行受影响)

亥亥 2009-07-08
  • 打赏
  • 举报
回复
select b.卡号,max(a.姓名),sum(b.金额) as 总额 from biao1 a,biao1 b
where a.卡号=b.卡号
group by b.卡号
drysea 2009-07-08
  • 打赏
  • 举报
回复

SELECT PI.*,T.Money FROM PI JOIN (
SELECT NO,SUM(ISNULL(Money,0)) AS Money FROM Buy
GROUP BY NO
) T
ON T.NO = PI.NO


Crocodil 2009-07-08
  • 打赏
  • 举报
回复

select PI.NO,PI.PName,sum(Buy.Money)
from PI left outer join Buy
on PI.NO=Buy.NO
Group by PI.NO,PI.PName
--小F-- 2009-07-08
  • 打赏
  • 举报
回复
select a.NO,a.Pname,sum(isnull(b.Money,0))
from 表一 a,表二 b
where a.NO=b.NO
group by a.NO,a.Pname
--小F-- 2009-07-08
  • 打赏
  • 举报
回复
--还是错误了
select a.NO,a.Pname,sum(isnull(b.Money),0)
from 表一 a,表二 b
where a.NO=b.NO
group by a.NO,a.Pname
oyb330 2009-07-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liangck 的回复:]
SQL codeselect
a.no,a.name,sum(isnull(b.money,0))asmoneyfrom tb1as aleftjoin tb2as bon a.no= b.nogroupby a.no,a.name
[/Quote]

这个正好。
这东西应该是基础吧。。。。。。。。。很难么?
--小F-- 2009-07-08
  • 打赏
  • 举报
回复
--修改下
select a.NO,a.Pname,isnull(b.sum(Money),0)
from 表一 a,表二 b
where a.NO=b.NO
group by a.NO,a.Pname
--小F-- 2009-07-08
  • 打赏
  • 举报
回复
select a.*,sum([金额(Money)] 
from
表一 a,表二 b
where a.[卡号(No)]=b.[卡号(No)]
group by a.[卡号(No)]
liangCK 2009-07-08
  • 打赏
  • 举报
回复
select
a.no,a.name,
sum(isnull(b.money,0)) as money
from tb1 as a
left join tb2 as b
on a.no = b.no
group by a.no,a.name

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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