簡體   English   中英

按季度sql查詢的工資明細

[英]Payroll breakdown by quarter sql query

我有一張看起來像這樣的桌子

    EmployeeID | Name | Check Date | Check Num | Check Amount | Quarter
    1          | Test | 01/21/2018 | 001231312 | 500          | 1
    1          | Test | 03/01/2018 | 001233210 | 100          | 1
    1          | Test | 05/01/2018 | 123213321 | 13           | 2
    1          | Test | 08/01/2018 | 321909900 | 321          | 3
    1          | Test | 12/01/2018 | 321000132 | 123          |4

我需要顯示以下輸出

EmployeeID | Name | 1st Quarter Date | 1st Quarter Check Num | 1st Quarter Check Amount | 2nd Quarter Date | 2nd Quarter Check Num | 2nd Quarter Check Amount | 3rd Quarter Date | 3rd Quarter Check Num | 3rd Quarter Check Amount | 4th Quarter Date | 4th Quarter Check Num | 4th Quarter Check Amount

我正在對此進行研究,並找到了有關使用 Pivot 的信息,但不清楚何時顯示詳細信息而不是某些列的聚合。

謝謝

在我看來,最簡單的方法是將 Datepart(QUARTER, Check Date) 與 case 語句結合使用。

例子:

Select EmployeeID
   , Name
   , CASE WHEN Datepart(QUARTER, CheckDate) = 1 Then 'Check Date' END AS '1st Quarter Date'
   , CASE WHEN Datepart(QUARTER, CheckDate) = 1 Then 'Check Num' END AS '1st Quarter Check Num'
   , CASE WHEN Datepart(QUARTER, CheckDate) = 1 Then 'Check Amount' END AS '1st Quarter Check Amount'
   , CASE WHEN Datepart(QUARTER, CheckDate) = 2 Then 'Check Date' END AS '2nd Quarter Date'
   , CASE WHEN Datepart(QUARTER, CheckDate) = 2 Then 'Check Num' END AS '2nd Quarter Check Num'
   , CASE WHEN Datepart(QUARTER, CheckDate) = 2 Then 'Check Amount' END AS '2nd Quarter Check Amount' 
   , CASE WHEN Datepart(QUARTER, CheckDate) = 3 Then 'Check Date' END AS '3rd Quarter Date'
   , CASE WHEN Datepart(QUARTER, CheckDate) = 3 Then 'Check Num' END AS '3rd Quarter Check Num'
   , CASE WHEN Datepart(QUARTER, CheckDate) = 3 Then 'Check Amount' END AS '3rd Quarter Check Amount' 
   , CASE WHEN Datepart(QUARTER, CheckDate) = 4 Then 'Check Date' END AS '4th Quarter Date'
   , CASE WHEN Datepart(QUARTER, CheckDate) = 4 Then 'Check Num' END AS '4th Quarter Check Num'
   , CASE WHEN Datepart(QUARTER, CheckDate) = 4 Then 'Check Amount' END AS '4th Quarter Check Amount' 
From YourTableName

我相信有更簡潔的方法可以做到這一點,我相信其他人會加入。另外,請不要在 Datepart 中使用相同的列名,我相信由於空格 (Datepart(季度,“檢查日期”)。

編輯:OP 添加了一些示例數據,並且由於有一個“季度”列,我們可以將 Case 語句更改為:

CASE WHEN QUARTER = 1 Then ....
CASE WHEN QUARTER = 2 Then ....
CASE WHEN QUARTER = 3 Then ....
CASE WHEN QUARTER = 4 Then ....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM