2017-06-07 172 views
2

我查詢...MySQL查詢的結果顯示

SELECT 
    tbl1.FeeName, 
    SUM(tbl1.FeeAmount) AS TotAmt 
FROM 
    tbl1 
WHERE 
    tbl1.DateTaken BETWEEN '2017-06-02' AND '2017-06-06' 
GROUP BY 
    tbl1.FeeId 

輸出是...

Fee

該表具有之間的不採取其他費用(交易)以上日期因此不在query結果中顯示。

我想顯示那些費用名稱,值應該是。就像下面(黃色的結果)。

Fee1

我應該怎麼辦?

+0

你有一個單獨的「收費標準」表(如將適用於規範化數據庫)。我想如果你加入了這個,你可以在那裏得到所有的費用,甚至是零的費用。可能需要成爲左連接。現在還沒有訪問數據庫管理系統來測試它。 – ADyson

+0

下一次,請參閱:[爲什麼我應該爲我認爲是非常簡單的SQL查詢提供一個MCVE?](https://meta.stackoverflow.com/questions/333952/why-should-i-provide -an-mcve-for-what-seem-to-what-seems-a-very-simple-sql-query) – Strawberry

+0

@Strawberry。那是什麼 ?你的高思維評論就像是我的**小頭**的「切線」。 – Raj

回答

6

試試這個:這隻會執行其在指定日期範圍內,對保留的收費費和運算這將把0

SELECT 
tbl1.FeeName, 
SUM(CASE WHEN tbl1.DateTaken BETWEEN '2017-06-02' AND '2017-06-06' 
     THEN tbl1.FeeAmount 
     ELSE 0 
    END) AS TotAmt 
FROM tbl1 
GROUP BY tbl1.FeeId 
+0

謝謝JaydipJ。有用。再次感謝。 – Raj