SQL 语句 加减乘除法 表达式 怎么写?
【问题1】请教个SQL语法问题表1:table1购房人房间号总房价张三A3011200000.00李四A4012300000.00王五A5013400000.00表1:t...
【问题1】请教个 SQL语法问题
表1: table1
购房人 房间号 总房价
张三 A301 1200000.00
李四 A401 2300000.00
王五 A501 3400000.00
表1: table2
房间号 款项类别 已收款金额
A301 订金 200000.00
A401 订金 300000.00
A501 订金 400000.00
A301 一期按揭 500000.00
A401 一期按揭 500000.00
A301 二期按揭 500000.00
============================================================
【提问】
写出 查询 包含 购房人、房间号、剩余未收房款 字段 结果的SQL语句
( 剩余未收房款 = 总房价 - 已收款金额 )
============================================================
【我这样写对吗?】
SELECT a.购房人,a.房间号,a.总房价 - b.SUM(已收款金额)
FROM table1 AS a
LEFT JOIN table2 AS b ON
a.房间号 = b.房间号
GROUP BY a.购房人
============================================================
【问题2 】 如果有加减乘除运算 SQL怎么表达? 展开
表1: table1
购房人 房间号 总房价
张三 A301 1200000.00
李四 A401 2300000.00
王五 A501 3400000.00
表1: table2
房间号 款项类别 已收款金额
A301 订金 200000.00
A401 订金 300000.00
A501 订金 400000.00
A301 一期按揭 500000.00
A401 一期按揭 500000.00
A301 二期按揭 500000.00
============================================================
【提问】
写出 查询 包含 购房人、房间号、剩余未收房款 字段 结果的SQL语句
( 剩余未收房款 = 总房价 - 已收款金额 )
============================================================
【我这样写对吗?】
SELECT a.购房人,a.房间号,a.总房价 - b.SUM(已收款金额)
FROM table1 AS a
LEFT JOIN table2 AS b ON
a.房间号 = b.房间号
GROUP BY a.购房人
============================================================
【问题2 】 如果有加减乘除运算 SQL怎么表达? 展开
4个回答
展开全部
SELECT distinct a.购房人,a.房间号,(a.总房价 -
(SELECT SUM( b.已收款金额 )
FROM table1 a, table2 b
WHERE a.房间号 = b.房间号
))
FROM table1 a,table2 b where
a.房间号 = b.房间号
或者按楼主的方法
SELECT distinct a.购房人,a.房间号,(a.总房价 - (
SELECT SUM( b.已收款金额 )
FROM table1 a, table2 b
WHERE a.房间号 = b.房间号
) )
FROM table1 a
LEFT JOIN table2 b ON
a.房间号 = b.房间号
不能用group by 语句,不过还是不太好
楼主写的不对,首先b.SUM(已收款金额) 不能这么写,sum(b.已收款金额)还行。这种left join groupby 也不能这么用。
在Oracle里面加减乘除是可以直接用+-*/的,也就是说"a.总房价"后面可以直接跟运算符。
(SELECT SUM( b.已收款金额 )
FROM table1 a, table2 b
WHERE a.房间号 = b.房间号
))
FROM table1 a,table2 b where
a.房间号 = b.房间号
或者按楼主的方法
SELECT distinct a.购房人,a.房间号,(a.总房价 - (
SELECT SUM( b.已收款金额 )
FROM table1 a, table2 b
WHERE a.房间号 = b.房间号
) )
FROM table1 a
LEFT JOIN table2 b ON
a.房间号 = b.房间号
不能用group by 语句,不过还是不太好
楼主写的不对,首先b.SUM(已收款金额) 不能这么写,sum(b.已收款金额)还行。这种left join groupby 也不能这么用。
在Oracle里面加减乘除是可以直接用+-*/的,也就是说"a.总房价"后面可以直接跟运算符。
展开全部
先用聚合函数求和,然后再减
SELECT t1.购房人, (t1.总房价- tu.已收款金额) AS UnPaid
FROM table1 AS t1, (SELECT sum(t2.已收款金额) AS 已收款金额,房间号
FROM dbo.table2 AS t2
GROUP BY 房间号) as tu
WHERE t1.房间号= tu.房间号
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-06-30
展开全部
SELECT
a.购房人,
a.房间号,
a.总房价 - (
SELECT SUM( b.已收款金额 )
FROM table2 AS b
WHERE a.房间号 = b.房间号
) AS 还需缴纳金额
FROM
table1 AS a
加减乘除运算. 上面不是已经有 减 的运算了么? 就是简单写 +-*/ 啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select 购房人,房间号,(总房价-已收款金额) from table1 a inner join table2 b on a.房间号=b.房间号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询