SQL 透视/行项目报告



我是用SQL Server编写查询的新手。 我正在努力解决如何创建由几个不同分区划分的行项目报告。 例如,我的起始数据示例如下所示:

pdheeid         pdhcoid pdhpaygroup Union Code  pdhdedcode  pdheecuramt pdhpaydate
AJ5PTN0000K0    BWC0O   8F          Union(Y/N)  U5018       3.15        2018-01-05 00:00:00.000
AJ5PTN0000K0    BWC0O   8F          Union(Y/N)  U5018       3.15        2018-01-19 00:00:00.000
AJ5PTN0000K0    BWC0O   8F          Union(Y/N)  U5018       3.15        2018-02-02 00:00:00.000
AJ5PTN0000K0    BWC0O   8F          Union(Y/N)  U5018       3.15        2018-02-16 00:00:00.000
AJ5PTN0000K0    BWC0O   8F          Union(Y/N)  U5018       3.15        2018-03-02 00:00:00.000
AJ5Q1U0000K0    BWC0O   8G          Union(Y/N)  U5018       3.01        2018-01-05 00:00:00.000
AJ5Q1U0000K0    BWC0O   8G          Union(Y/N)  U5018       3.01        2018-01-19 00:00:00.000
AJ5Q1U0000K0    BWC0O   8G          Union(Y/N)  U5018       3.01        2018-02-02 00:00:00.000
AJ5Q1U0000K0    BWC0O   8G          Union(Y/N)  U5018       3.01        2018-02-16 00:00:00.000
AJ5Q1U0000K0    BWC0O   8G          Union(Y/N)  U5018       3.01        2018-03-02 00:00:00.000

从那里,我希望做一个几乎支点,以获得一个详细的输出

,如下所示:
PayDate    Pay Group    Union Code    Total Transactions    Unique Employees  Deduction Code    Sum(dollars for group)  Avg(across employees in the group)

然后能够按年份汇总它,这更像是:

YEAR(PayDate)   Pay Group    Union Code    Total Transactions    Unique Employees  Deduction Code    Sum(dollars for group)  Avg(across employees in the group)

很抱歉菜鸟问题,我是SQL世界的新手,仍在努力跟上进度。

我正在使用您在详细输出中提供的列"名称"。很抱歉没有完全回答您的问题。这不会在分组中提供独特的员工,但我希望这是一个起点。

select 
PayDate ,   
Pay Group ,   
Union Code  ,  
count(transactions) as Total Transactions
count(employees) as  non-unique employees **
Deduction Code    
Sum(dollars) as dollars for group
Avg(dollars) as across employees in the group
from some_table
group by
PayDate ,   
Pay Group ,   
Union Code  ,  
Deduction Code  

最新更新