我有table1代表订单摘要。在table1中,table2与table2有一对多的关系,表示作为订单一部分的不同项。 table1有一个数量字段,应该表示订单中的单个项目的总数。在表2中,数量字段表示该项目类型的单个项目数。
我想看看什么不符合这条规则(我有理由相信规则被打破了)
SELECT table1.id, table1.quantity, table2.orderid, table2.itemqty
FROM table1
INNER JOIN table2 on tabel1.id = table2.orderid
WHERE table1.quantity != SUM(table2.itemqty)
答案 0 :(得分:3)
您可以使用having
子句将条件应用于组:
select t1.id
, t1.customer
, t1.quantity
, sum(t2.itemqty)
from table1 t1
join table2 t2
on t1.id = t2.orderid
group by
t1.id
, t1.customer
, t1.quantity
having t1.quantity <> sum(t2.itemqty)
答案 1 :(得分:1)
SELECT table1.id,
table1.quantity,
table2.orderid,
table2.itemqty
FROM table1
INNER JOIN (
SELECT orderid,
SUM(itemqty) as itemqty
FROM table2
GROUP BY orderid
) table2
on tabel1.id = table2.orderid
WHERE table1.quantity <> table2.itemqty