猿问

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

【问题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怎么表达?

慕森王
浏览 4853回答 4
4回答

qq_遁去的一_1

SELECT distinct a.购房人,a.房间号,(a.总房价 -(SELECT SUM( b.已收款金额 )FROM table1 a, table2 bWHERE a.房间号 = b.房间号))FROM table1 a,table2 b wherea.房间号 = b.房间号或者按楼主的方法SELECT distinct a.购房人,a.房间号,(a.总房价 - (SELECT SUM( b.已收款金额 )FROM table1 a, table2 bWHERE a.房间号 = b.房间号) )FROM table1 aLEFT JOIN table2 b ONa.房间号 = b.房间号不能用group by 语句,不过还是不太好楼主写的不对,首先b.SUM(已收款金额) 不能这么写,sum(b.已收款金额)还行。这种left join groupby 也不能这么用。在Oracle里面加减乘除是可以直接用+-*/的,也就是说"a.总房价"后面可以直接跟运算符。 

UYOU

12345678910SELECT    a.购房人,  a.房间号,  a.总房价 - ( SELECT SUM( b.已收款金额 )  FROM  table2 AS b WHERE  a.房间号 = b.房间号 )  AS  还需缴纳金额FROM   table1 AS a 加减乘除运算.   上面不是已经有   减   的运算了么?  就是简单写  +-*/  啊 

慕斯709654

先用聚合函数求和,然后再减12345SELECT t1.购房人, (t1.总房价- tu.已收款金额) AS UnPaidFROM table1 AS t1, (SELECT sum(t2.已收款金额) AS 已收款金额,房间号FROM dbo.table2 AS t2GROUP BY 房间号) as tuWHERE t1.房间号= tu.房间号 

尚方宝剑之说

select 购房人,房间号,(总房价-已收款金额) from table1 a inner join table2 b on a.房间号=b.房间号
随时随地看视频慕课网APP

相关分类

SQL Server
我要回答