请教一个SQL问题

fengxvhui 2003-05-21 12:12:29
用户情况表:用户ID、姓名

消费情况表:用户ID、消费日期、消费金额

缴费情况表:用户ID、缴费日期、缴费金额

需要给出所有欠费用户的用户ID、姓名和欠费金额。
...全文
70 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
happydreamer 2003-05-21
  • 打赏
  • 举报
回复
SELECT A.用户ID,A.姓名, C.缴费金额-B.消费金额 AS 欠费金额
FROM 用户情况表 A JOIN 消费情况表 B ON A.用户ID=B.用户ID
JOIN 缴费情况表 C ON A.用户ID=C.用户ID
WHERE ( C.缴费金额-B.消费金额 ) <0


erigido 2003-05-21
  • 打赏
  • 举报
回复
什么条件才算是欠费用户呀?
fengxvhui 2003-05-21
  • 打赏
  • 举报
回复
现在出来了。
fengxvhui 2003-05-21
  • 打赏
  • 举报
回复
怎么找不到我的问题。
fengxvhui 2003-05-21
  • 打赏
  • 举报
回复
一个用户可以多次消费,也可以多次缴费,如果缴费总金额小于消费总金额,就是欠费用户。
看上去只有pengdali(大力)和zhaojingsai(赛月)是对的,因为其它朋友都没有用sum。当然,我自己也没有用sum。
zhaojingsai 2003-05-21
  • 打赏
  • 举报
回复
你可以先创建一个视图,统计一下所有缴费日期和消费日期共缴费,消费多少,然后再选择

pengdali 2003-05-21
  • 打赏
  • 举报
回复
select a.用户ID,(select 姓名 from 用户情况表 where 用户ID=a.用户ID) 姓名 ,sum(b.缴费金额-a.消费金额) 欠费金额 from 消费情况表 a left join 缴费情况表 b on a.用户ID=b.用户ID group by a.用户ID having sum(a.消费金额-b.缴费金额)<0
fengxvhui 2003-05-21
  • 打赏
  • 举报
回复
标准的SQL可以用 字段相减 吗,即
C.缴费金额-B.消费金额

标准的SQL可不可以这么写
SELECT A.用户ID,A.姓名,C.缴费金额-B.消费金额 AS 欠费金额
FROM 用户情况表 A,消费金额表 B,缴费金额表 C
WHERE (A.用户ID = B.用户ID) AND (A.用户ID = C.用户ID)
cappuccinomn 2003-05-21
  • 打赏
  • 举报
回复
SELECT A.用户ID,A.姓名, C.缴费金额-B.消费金额 AS 欠费金额
FROM 用户情况表 A JOIN 消费情况表 B ON A.用户ID=B.用户ID
JOIN 缴费情况表 C ON A.用户ID=C.用户ID
WHERE ( C.缴费金额-B.消费金额 ) <0
banban1982 2003-05-21
  • 打赏
  • 举报
回复
估计是消费金额-缴费金额>0才算是欠费用户吧

能不能先建立个视图进行查询啊
create view xxx
as select 用户情况表.用户ID,姓名,消费金额,缴费金额
from 用户情况表,消费情况表,缴费情况表
where 用户情况表.用户ID=消费情况表.用户ID=缴费情况表.用户ID

然后再用sql进行查询,求出消费金额-交费金额

这些只是个人看法,建立视图的语句可能包含错误,没式过,你可以自己看看

34,873

社区成员

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

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