这是我的表结构
create table DailyFinishJobsHistory
(
RowID INT NOT NULL IDENTITY (1, 1),
[Job Type] Varchar(16) NOT NULL,
[No of Jobs] INT NOT NULL DEFAULT ((0)),
[Turnaround Time] DECIMAL(10,2) NOT NULL DEFAULT ((0)),
[One Day Per] DECIMAL(8,2),
CreatedDate datetime DEFAULT (GetDate())
)
现在我必须以这种方式显示数据&按日期排序asc和where子句将在那里我需要指定两个日期。
date OUR_No of jobs OUR_Turnaround_time OUR_One day per Salesnew_ of jobs Salesnew_no of jobs Salesnew_turnaround_time this way i need to show...
我想我需要使用枢轴,但我尝试的任何东西都不起作用。所以任何帮助将不胜感激。感谢
答案 0 :(得分:1)
您的问题和要求不是很清楚,但我想猜测您需要以下内容:
select
convert(varchar(10), createddate, 120) date,
sum(case when [job type] = 'OUR' then [No of Jobs] else 0 end) OurNoOfJobs,
sum(case when [job type] = 'OUR' then [Turnaround Time] else 0 end) OurTurnaroundTime,
sum(case when [job type] = 'OUR' then [One Day Per] else 0 end) OurOneDayPer,
sum(case when [job type] = 'SALESNEW' then [No of Jobs] else 0 end) SalesNewNoOfJobs,
sum(case when [job type] = 'SALESNEW' then [Turnaround Time] else 0 end) SalesNewTurnaroundTime,
sum(case when [job type] = 'SALESNEW' then [One Day Per] else 0 end) SalesNewOneDayPer
from DailyFinishJobsHistory
group by convert(varchar(10), createddate, 120);
这使用聚合函数和CASE表达式将您的数据行转换为列,使用sum
函数聚合您想要的列中的值。