2017-05-25 129 views
-1

我爲每個存儲有關其存在與否的信息的人員都有一張表格。 我想計算「出席」列中'現在'和'缺席'的值 表名是「教師姓名」。計算列中特定字符串值的出現次數

Database looked like this. 
Time   Attendance 
'2:30:30' 'Present' 
'1:20:30' 'Present' 
'4:10:30' 'Absent'[view of database in xampp][1] 
'3:30:30' 'Present' 
'2:32:30' 'Absent' 

我想要計算「存在」和「缺席」的發生次數 所以我可以根據它生成的薪水。 這可能嗎? 或者我做錯了什麼?

回答

1
SELECT Attendence, COUNT(*) FROM your_table 
GROUP BY Attendence 

使用LINQ,沿着線:

.GroupBy (k => k.Attendence, (k, m) => new { Attendence = k, Count = m.Count() } 

根據註釋:如果您需要的結果橫向而不是縱向的,技術上的正確方法是使用PIVOT,而是一個快速簡便的方法是:

SELECT 
    SUM(CASE Attendence WHEN 'Present' THEN 1 ELSE 0 END) AS Present, 
    SUM(CASE Attendence WHEN 'Absent' THEN 1 ELSE 0 END) AS Absent 
    FROM your_table 
+0

@fhanhanbashir不客氣,請標記爲接受的答案,如果這對你有用。 – LB2

+0

嗨,不好意思再打擾一下,請你也請告訴我如何在C#中使用這個語句生成結果。很多謝謝 –

+0

@farhanbashir,新增。我在移動設備上進行編輯,因此可能會有一些不準確的地方。 – LB2

相關問題