首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

问一条SQL语句,熟习T-SQL的快来呀

2012-02-01 
问一条SQL语句,熟习T-SQL的快来呀。在线等用户表用户ID用户名字总金额1abc10002def500用户付费表商品id用户

问一条SQL语句,熟习T-SQL的快来呀。在线等
用户表
用户ID       用户名字       总金额
1                 abc                 1000
2                 def                   500

用户付费表
商品id         用户id2             商品1金额       商品2金额         商品3金额
1                       1                               5                       8                     6
2                       2                               10                     20                   30
3                       1                               5                       10                   20


共两个表。已知   用户表   的 "用户名字 ",如何得到   [总金额]   减   [商品金额]   的值

如已知用户名是   abc   ,我要得到以下结果集
-----------------------------------
用户名         总金额         剩余金额
  abc             1000                 946

[解决办法]
你这个数据库设计得有问题
[解决办法]
用户付费表
设计的不太好...
[解决办法]
select a.用户名字,a.总金额,剩余金额 = a.总金额 - sum(b.商品1金额) - sum(b.商品2金额) - sum(b.商品3金额) from 用户表 as a left join 用户付费表 as b on a.用户ID = b.用户ID2 where a.用户名字= 'abc 'group by a.用户名字,a.总金额
[解决办法]
select a.用户名字 ,a.总金额,a. 总金额- isnull(b.商品金额,0)
from 用户表 a
left join (
select 用户id2, sum(商品1金额 + 商品2金额 + 商品3金额) as 商品金额 from 用户付费表 group by 用户id2
) b
on a.用户ID =b.用户ID2



*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

最新版本:20070212

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
[解决办法]
select a.用户名字,a.总金额,剩余金额 = a.总金额 - sum(b.商品1金额) - sum(b.商品2金额) - sum(b.商品3金额) from 用户表 as a left join 用户付费表 as b on a.用户ID = b.用户ID2 where a.用户名字= 'abc 'group by a.用户名字,a.总金额

[解决办法]
select 用户名字,总金额, ( 总金额 -
(
select sum(商品1金额+商品2金额+商品3金额) from 用户付费表 where 用户id2 =
(
select top 1 用户ID from 用户表 where 用户名字 = 'abc '
)
) ) as 剩余金额 from 用户表 where 用户名字 = 'abc '

可以结贴了吧!
[解决办法]


select u.username,u.price,(u.price-p.price1-p.price2-price3) as b from tb_user u
left join user_price p on u.userid=p.userid where u.username= 'abc '
[解决办法]
select a.用户名字 ,a.总金额,a. 总金额- isnull(b.商品金额,0) as 剩余金额
from 用户表
left OUTER JOIN (
select 用户id2, sum(商品1金额+商品2金额+商品3金额) as 商品金额 from 用户付费表 group by 用户id2
) a
on 用户表.用户ID =a.用户ID2
where 用户表.用户名字= 'abc '

[解决办法]
select 总金额-(select sum(商品1金额+商品1金额+商品1金额) from 用户付费表 where 用户id2=(select 用户ID from 用户表 where 用户名=abc)) as d from a where 用户名=abc

[解决办法]
id 学号 课程 分数
1 200301 a 60
2 200302 a 70
3 200301 a 60

id 是主键 删除除了主键不同,其他都相同的记录,也就是删除冗余
id 学号 课程 分数
1 200301 a 60
2 200302 a 70
[解决办法]
表设计的不对。不满足基本的3FS

总金额跟用户的ID或者用户名存在依赖么??

热点排行