iT邦幫忙

0

LINQ Pivot問題請教

  • 分享至 

  • xImage

最近剛好有使用到Pivot語法

我是參考這個網站

http://jengting.blogspot.com/2018/05/LINQ-Pivot.html

參考他的做法大致上已經實現,目前還有個問題
假設我想再追加一個欄位是用來計算請假的次數
像AAAA的總時數就是54
BBBB則是36
請問這個我該如何實現呢?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
johncoc
iT邦新手 3 級 ‧ 2022-11-11 18:09:24
最佳解答
var result = Data.GroupBy(g => g.Employee)
                .Select(g => new
                {
                    Employee = g.Key,
                    Personal = g.Where(w => w.Kind == "事假").Sum(s => s.Hours),
                    Sick = g.Where(w => w.Kind == "事假").Sum(s => s.Hours),
                    Company = g.Where(w => w.Kind == "公假").Sum(s => s.Hours),
                    Paternity = g.Where(w => w.Kind == "陪產假").Sum(s => s.Hours),
                    //總時數
                    ToltalHours = g.Sum(s => s.Hours),
                    //總次數
                    TotalTimes = g.Count()
                });
tenno081 iT邦研究生 4 級 ‧ 2022-11-11 20:45:22 檢舉

原來這麼單純= =
我能另外請問一下嗎?
如果不用LINQ還是單純SQL

大概寫法類似

PIVOT
        (
          SUM(Hours) FOR Kind IN ([事假],[病假],[公假],[陪產假])
        ) AS pt

那這樣要怎麼對應C#的屬性欄位呢?

johncoc iT邦新手 3 級 ‧ 2022-11-14 11:01:10 檢舉

可以參考2樓的連結

我要發表回答

立即登入回答