Sql 比较两列,其中一列使用sum函数

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

我有两张桌子 表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     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以表格形式提供的样本数据、当前结果和期望结果将改进您的问题。您想要什么结果?比较意味着什么?不要在数量=数量的地方设置过滤器。只需选择这两个数量,并可能进行计算以显示差异。