2015-12-04 145 views
2

Iam嘗試根據特定條件顯示總計。讓我顯示我的數據庫結構。根據特定條件顯示總計

╔════╦═══════════╦═══════════╦════════╦═══════╗ 
║ id ║ tender_id ║ sup_name ║ ifmain ║ total ║ 
╠════╬═══════════╬═══════════╬════════╬═══════╣ 
║ 1 ║ 400 ║ Suppl1 ║ Yes ║ 2000 ║ 
║ 2 ║ 400 ║ Suppl2 ║ Yes ║ 2500 ║ 
║ 3 ║ 400 ║ Suppl1 ║ No ║ 2000 ║ 
║ 4 ║ 400 ║ Suppl3 ║ No ║ 2900 ║ 
║ 5 ║ 400 ║ Suppl1 ║ Yes ║ 3100 ║ 
║ 6 ║ 402 ║ Suppl2 ║ Yes ║ 877 ║ 
║ 7 ║ 402 ║ Suppl3 ║ No ║ 9888 ║ 
╚════╩═══════════╩═══════════╩════════╩═══════╝ 

現在我需要找到總和由tender_id和sup_name和ifmain和顯示總計。示例我需要顯示其中tender_id = 400和sup_name = Supl1且ifmain = Yes或Ifmain = No的總計。我需要顯示ifMain =是和ifMain =沒有總計分開。我怎樣才能做到這一點。

我試過下面的查詢。它的工作按照tender_id,現在我需要爲sup_name添加一個條件。我如何才能做到這一點:

select tender_id, SUM(CASE WHEN ifmain = 'Yes' THEN total ELSE 0 END) AS maintotal, 
SUM(CASE WHEN ifmain = 'No' THEN total ELSE 0 END) AS subtotal from 
comparitive_st_sup where tender_id='400' 
+0

顯示輸出的例子,你要 –

回答

1

你接近,只是添加分組:

select tender_id, 
     sup_name, 
     SUM(CASE WHEN ifmain = 'Yes' THEN total ELSE 0 END) AS maintotal, 
     SUM(CASE WHEN ifmain = 'No' THEN total ELSE 0 END) AS subtotal 
from comparitive_st_sup 
group by tender_id, sup_name 
+0

謝謝.. :)這是我犯了一個小錯誤。 – user310668