Mysql 在sql中将日期行转换为列

Mysql 在sql中将日期行转换为列,mysql,sql,Mysql,Sql,我有一个数据表,如下所示。我需要将日期行转换为列,并需要填充各个日期中的合同计数。请帮我找到密码。 这是表XXX中的数据 预期产量为 请做必要的事 这是我尝试过的代码。但数据类型有错误 DECLARE @Proposed_Delv_Dt AS datetime SELECT @Proposed_Delv_Dt = COALESCE(@Proposed_Delv_Dt + ', ', '') + CAST(@Proposed_Delv_Dt AS datetime)

我有一个数据表,如下所示。我需要将日期行转换为列,并需要填充各个日期中的合同计数。请帮我找到密码。 这是表XXX中的数据

预期产量为

请做必要的事

这是我尝试过的代码。但数据类型有错误

    DECLARE @Proposed_Delv_Dt AS datetime
SELECT @Proposed_Delv_Dt = 
    COALESCE(@Proposed_Delv_Dt + ', ', '') +  CAST(@Proposed_Delv_Dt AS datetime)
    FROM ( select distinct Proposed_Delv_Dt from (select  PM.Project_Alias_name as 'Project Name', CD.Key_column_values as contractNumber, PLM.Type_of_picklist as Lease_type, 
PLM.Pick_List_description as TypeOfWork, PWS.Workflow_status_description as Contract_status,
  UM.Employee_id, SM.SBU_Name, UM.fULL_NAME as Assigned_To, UMAB.Full_Name as 
assigned_By, RM.Role_Description as role, CUD.Change_date as AssignedDate, CD.Proposed_delivery_date as 'Proposed_Delv_Dt'
from Contract_user_details CUD
left join Contract_Details CD on CD.Pkey = CUD.Fkey_Contract_Key
left join Project_Master PM on CD.Fkey_Project_Key = PM.Pkey
left join SBU_Master SM on SM.Pkey = PM.Fkey_Sbu_key
left join Pick_list_master PLM on CD.Fkey_Lease_Type = PLM.Pkey
left join Project_Workflow_Status PWS on CD.Fkey_Current_Workflow_Status = PWS.Pkey
left join Users_Master UM on CUD.Fkey_User_key = UM.Pkey
left join Users_Master UMAB on CUD.Fkey_assigned_by = UMAB.Pkey
left join Role_master RM on RM.pkey = CUD.Fkey_Role_key)f )d
SELECT @Proposed_Delv_Dt Dates
Iam预计o/p日期以“,”分隔(逗号)

我已从上述代码到达。。。但我只有一个问题。我需要一个总计作为lost列,该列在date列中有count之和,如下所示。


我还需要按SbU名称、合同状态、分配给、角色进行分组

执行
分组
。使用
case
表达式对不同日期进行计数,stackoverflow不是代码共享平台。请至少展示一些研究成果。对不起,我不明白你想要什么,我想我不是一个人。嗨,Jean Doux。我需要的是第二幅图像的输出。我曾尝试用逗号分隔日期,并再次将该数据用于pivot函数。我提到的第一个表是由我使用联接从不同的表中得到的。
DECLARE @Proposed_Delv_Dt AS NVARCHAR (MAX)
SELECT @Proposed_Delv_Dt = 
    COALESCE(@Proposed_Delv_Dt + ',[ ' + CONVERT(NVARCHAR, [Proposed_Delv_Dt], 112) + ']','[' + CONVERT(NVARCHAR, [Proposed_Delv_Dt], 112) + ']')
    FROM ( select distinct Proposed_Delv_Dt from (select  PM.Project_Alias_name as 'Project Name', CD.Key_column_values as contractNumber, PLM.Type_of_picklist as Lease_type, 
PLM.Pick_List_description as TypeOfWork, PWS.Workflow_status_description as Contract_status,
UM.Employee_id, SM.SBU_Name,UM.fULL_NAME as Assigned_To, UMAB.Full_Name as 
assigned_By, RM.Role_Description as role, CUD.Change_date as AssignedDate, CD.Proposed_delivery_date as Proposed_Delv_Dt
from Contract_user_details CUD
left join Contract_Details CD on CD.Pkey = CUD.Fkey_Contract_Key
left join Project_Master PM on CD.Fkey_Project_Key = PM.Pkey
left join SBU_Master SM on SM.Pkey = PM.Fkey_Sbu_key
left join Pick_list_master PLM on CD.Fkey_Lease_Type = PLM.Pkey
left join Project_Workflow_Status PWS on CD.Fkey_Current_Workflow_Status = PWS.Pkey
left join Users_Master UM on CUD.Fkey_User_key = UM.Pkey
left join Users_Master UMAB on CUD.Fkey_assigned_by = UMAB.Pkey
left join Role_master RM on RM.pkey = CUD.Fkey_Role_key)f )d

DECLARE @DynamicPIVOT AS VARCHAR(MAX)
SELECT @DynamicPIVOT = 'SELECT  SBU_name, Contract_status, Assigned_to, Role, ' + @Proposed_Delv_Dt + 
' FROM (
    select  PM.Project_Alias_name as Project_Name, CD.Key_column_values as contractNumber, PLM.Type_of_picklist as Lease_type, 
PLM.Pick_List_description as TypeOfWork, PWS.Workflow_status_description as Contract_status,
UM.Employee_id, SM.SBU_Name,UM.fULL_NAME as Assigned_To, UMAB.Full_Name as 
assigned_By, RM.Role_Description as role, CUD.Change_date as AssignedDate, CD.Proposed_delivery_date as Proposed_Delv_Dt
from Contract_user_details CUD

left join Contract_Details CD on CD.Pkey = CUD.Fkey_Contract_Key
left join Project_Master PM on CD.Fkey_Project_Key = PM.Pkey
left join SBU_Master SM on SM.Pkey = PM.Fkey_Sbu_key
left join Pick_list_master PLM on CD.Fkey_Lease_Type = PLM.Pkey
left join Project_Workflow_Status PWS on CD.Fkey_Current_Workflow_Status = PWS.Pkey
left join Users_Master UM on CUD.Fkey_User_key = UM.Pkey
left join Users_Master UMAB on CUD.Fkey_assigned_by = UMAB.Pkey
left join Role_master RM on RM.pkey = CUD.Fkey_Role_key)f 
PIVOT (
    count(contractNumber) FOR Proposed_Delv_Dt IN (' + @Proposed_Delv_Dt + ')
) Result;'

EXEC (@DynamicPIVOT)