SQL Pivot /行项目报告

时间:2018-03-12 20:56:38

标签: sql sql-server

我是在SQL Server中编写查询的新手。我正在努力解决如何创建由几个不同的分区分解的订单项报告。例如,我的STARTING数据示例如下:

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)

对于noob问题,我很抱歉,我是SQL世界的新手,仍在努力加快速度。

1 个答案:

答案 0 :(得分:0)

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

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