Sql 比较两列,其中一列使用sum函数
我有两张桌子 表1 表1包含id、item、quantity1 id PK列 另一张桌子 表2 表2包含列no、quantity2、id FK 我想比较表1中的quantity1和表2中的sumquantity2,发现quantity1和quantity2中的结果相同Sql 比较两列,其中一列使用sum函数,sql,sql-server,Sql,Sql Server,我有两张桌子 表1 表1包含id、item、quantity1 id PK列 另一张桌子 表2 表2包含列no、quantity2、id FK 我想比较表1中的quantity1和表2中的sumquantity2,发现quantity1和quantity2中的结果相同 quantity1 quantity2 20 20 5 5 我的意思是我想给我一个quantity1的结果,和quantity2的结果一样 quantity1
quantity1 quantity2
20 20
5 5
我的意思是我想给我一个quantity1的结果,和quantity2的结果一样
quantity1 quantity2
20 20
5 5
我尝试了这个方法,但它在语法上不起作用
SELECT table1.id, table1.quantity1,
table1.item, SUM(table2.quantity2) AS Expr1
FROM table1 INNER JOIN
table2 ON table1.id = table2.id
where table1.quantity1 = Expr1
GROUP BY table1.id, table1.quantity1, table1.item
要比较骨料,请使用:
SELECT table1.id
,table1.quantity1
,table1.item
,SUM(table2.quantity2) AS Expr1
FROM table1
INNER JOIN table2 ON table1.id = table2.id
GROUP BY table1.id, table1.quantity1, table1.item
HAVING SUM(table2.quantity2)=table1.quantity1
为了更清晰,你可以一步一步走。您可以使用CTE,然后加入 ;以CTE_表2为例 选择id,Sumquantity2作为数量和 来自表2 按id分组 选择t1.id、t1.quantity1、t1.item、t2.quantity\u sum 从表1中取t1 内部连接CTE_表2为t2 在t2.id=t1.id上 和t2.quantity_sum=t1.quantity1
1请用您正在运行的数据库标记您的问题:mysql、oracle、sqlserver。。。?2定义不起作用3对于给定的id,表2中是否有几行?4以表格形式提供的样本数据、当前结果和期望结果将改进您的问题。您想要什么结果?比较意味着什么?不要在数量=数量的地方设置过滤器。只需选择这两个数量,并可能进行计算以显示差异。