为了账号安全,请及时绑定邮箱和手机立即绑定

SQL 语句 加减乘除法 表达式 怎么写?

SQL 语句 加减乘除法 表达式 怎么写?

当年话下 2019-05-31 03:03:40
【问题1】请教个 SQL语法问题表1: table1购房人 房间号 总房价张三 A301 1200000.00李四 A401 2300000.00王五 A501 3400000.00表1: table2房间号 款项类别 已收款金额A301 订金 200000.00A401 订金 300000.00A501 订金 400000.00A301 一期按揭 500000.00A401 一期按揭 500000.00A301 二期按揭 500000.00============================================================【提问】写出 查询 包含 购房人、房间号、剩余未收房款 字段 结果的SQL语句( 剩余未收房款 = 总房价 - 已收款金额 )============================================================【我这样写对吗?】SELECT a.购房人,a.房间号,a.总房价 - b.SUM(已收款金额) FROM table1 AS aLEFT JOIN table2 AS b ONa.房间号 = b.房间号GROUP BY a.购房人============================================================【问题2 】 如果有加减乘除运算 SQL怎么表达?
查看完整描述

4 回答

?
MM们

TA贡献1886条经验 获得超2个赞

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.总房价"后面可以直接跟运算符。


 




查看完整回答
反对 回复 2019-06-01
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

1

2

3

4

5

6

7

8

9

10

SELECT  

  a.购房人,

  a.房间号,

  a.总房价 - (

 SELECT SUM( b.已收款金额 ) 

 FROM  table2 AS b

 WHERE  a.房间号 = b.房间号

 )  AS  还需缴纳金额

FROM 

  table1 AS a

 

加减乘除运算.   上面不是已经有   减   的运算了么?  就是简单写  +-*/  啊

 



查看完整回答
反对 回复 2019-06-01
?
UYOU

TA贡献1878条经验 获得超4个赞

先用聚合函数求和,然后再减

1

2

3

4

5

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.房间号

 




查看完整回答
反对 回复 2019-06-01
?
狐的传说

TA贡献1804条经验 获得超3个赞

select 购房人,房间号,(总房价-已收款金额) from table1 a inner join table2 b on a.房间号=b.房间号



查看完整回答
反对 回复 2019-06-01
  • 4 回答
  • 0 关注
  • 1386 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信