0

我有以下 SQLite 表:

transaction_amount     transaction_date
50                     09/06/2012
50                     09/06/2012
75                     09/07/2012

我希望获得列 transaction_amount 的总金额。如果我这样写我的 SQL 查询:

SELECT transaction_amount,transaction_date, SUM(transaction_amount) AS 
Total FROM prepaid_tbl WHERE playerID = 17 ORDER BY id DESC

我得到以下结果:

 transaction_amount     transaction_date  Total
 75                     09/07/2012        175

我需要与总数一起返回所有三行。所以,如果我这样写 SQL 语句:

SELECT transaction_amount,transaction_date,(SELECT SUM(transaction_amount) 
FROM prepaid_tbl WHERE playerID = 17)Total FROM prepaid_tbl WHERE 
playerID = 17 ORDER BY id DESC

我现在得到了我正在寻找的结果:

transaction_amount     transaction_date    Total
50                     09/06/2012          175
50                     09/06/2012          175
75                     09/07/2012          175

所以,我的简单问题是这是获得我想要的结果的最佳方法/实践。我无论如何都不是 SQL 专家,所以我仍然不确定为什么第一种方法没有返回我想要的结果。任何见解都值得赞赏。

提前致谢。

4

1 回答 1

2

你可以做cartesian join来解决你的问题

SELECT  a.transaction_amount,
        a.transaction_date,
        b.Total
FROM prepaid_tbl  a,
        (
            SELECT  SUM(transaction_amount) AS  Total 
            FROM prepaid_tbl 
            WHERE playerID = 17 
        ) b
WHERE a.playerID = 17 

SQLFiddle 演示

于 2012-09-08T07:48:01.903 回答