0

我正在尝试使用两个元素对哈希表中的某些行求和:一组选择的 ID 和一个特定的键。

这是设置:

表格1:

ID  KEY      VALUE
1   name     John Doe
1   amount   10
2   name     Jane Doe
2   amount   15
3   name     Mike Lowry
3   amount   5

表 2:

ORDERID   TYPE      TRANSACTIONID
1001      Purchase  1
1002      Donation  2
1003      Purchase  3 

我正在尝试获取类型为“购买”的所有金额的总和。这是我正在使用的查询:

SELECT SUM(Table1.value) as balance 
FROM Table1
LEFT JOIN (SELECT Table2.TRANSACTIONID as TID FROM Table2 WHERE Table2.TYPE = "Purchase" ) as ids 
ON Table1.ID = ids.TID
WHERE Table1.key = "amount"

调整它,我设法得到 0 和所有行的总数,但不仅仅是一个结果。想法?

4

1 回答 1

1

问题是您的查询在 和 之间进行了外连接这样无论是否从. 了解SQL 连接Table1Table2Table1Table2

您想改为进行内部连接

SELECT SUM(VALUE)
FROM   Table1 JOIN Table2 ON Table1.ID = Table2.TRANSACTIONID
WHERE  Table1.KEY = 'amount' AND Table2.TYPE = 'Purchase'

sqlfiddle上查看。

于 2012-09-05T23:02:08.870 回答