2014-12-06 88 views
0

我有一個表,其中包含名爲「類別」和「總時間」的字段。當我運行一個查詢時,我需要生成兩個名爲'Cat1Time'和'Cat2Time'的附加臨時列。使用基於條件的值填充列

如果一行中的總時間是4小時,並且它是類別1,它應該在Cat1Time列下顯示'4'。如果連續的總時間是4小時,並且它是類別1,它應該在'Cat2Time'列下顯示'4'。有沒有辦法做到這一點?

EntryID | Category | Cat1Time | Cat2Time 
2  | 1  | 4  |  
3  | 2  |   | 4 
4  | 1  | 2.5 | 




Select EntryID, Category, TotalTime AS Cat1Time 
WHERE Category =1, TotalTime as Cat2Time where Category = 2 
from LogEntry 

不管怎樣,我知道這是行不通的......它只是給你一個想法是什麼,我試圖做的。任何幫助將不勝感激!

+1

米哈伊,我只是試圖找出讓我的帖子出現這樣。非常感謝你!!!!! – user3533673 2014-12-06 21:56:03

+0

我不明白你的邏輯,你如何計算總時間? – Mihai 2014-12-06 21:57:29

+0

總時間是用戶輸入的。用戶可以輸入他們想要的任何整數 - 這不是一個計算的字段。我需要弄清楚是否是類別1或類別2的總時間。總時間將被輸入,但不會顯示在表格中。對不起,我沒有澄清。 OMG! – user3533673 2014-12-06 21:58:58

回答

1

你需要一個CASE聲明:

SELECT EntryID, Category, TotalTime, 
    CASE WHEN Category = 1 THEN 
     TotalTime 
    ELSE 
     NULL 
    END AS Cat1Time, 
    CASE WHEN Category = 2 THEN 
     TotalTime 
    ELSE 
     NULL 
    END AS Cat2Time 
FROM LogEntry 
+0

我不敢相信這很簡單。非常感謝你,Rhumborl! – user3533673 2014-12-06 22:32:35