Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 不同条件下的SQL实例_Sql Server - Fatal编程技术网

Sql server 不同条件下的SQL实例

Sql server 不同条件下的SQL实例,sql-server,Sql Server,我有一个问题,我试图从中得出2012年和2013年员工的发展评级: SELECT Employee_ID, Meeting_Year, Meeting_Readiness_Rating FROM dbo.v_sc17_TMS_Data_Career_Meeting_Rating GROUP BY Employee_ID, Meeting_Year, Meeting_Readiness_Rating 我正在尝试设置这样的情况,它将2012年的收视率拉入一列,将2013年的收视率拉入另一列。我希

我有一个问题,我试图从中得出2012年和2013年员工的发展评级:

SELECT Employee_ID, Meeting_Year, Meeting_Readiness_Rating
FROM  dbo.v_sc17_TMS_Data_Career_Meeting_Rating
GROUP BY Employee_ID, Meeting_Year, Meeting_Readiness_Rating
我正在尝试设置这样的情况,它将2012年的收视率拉入一列,将2013年的收视率拉入另一列。我希望它看起来像

Employee ID       2012 Meeting Rating        2013 Meeting Rating


即使他们在2012年采取了一项措施,但不是在2013年,我仍然需要这两项措施的数据,我很难弄清楚这一点。有什么想法吗?

这不是把它们结合起来,而是把它们分成不同的年份。例如,如果他们有2012年和2013年的评级,它会列出2012年的评级,2013年为空,然后有另一个2013年评级和2012年为空的记录。是的,对不起,我没有仔细阅读:)Baltov的最佳答案这不是将它们合并,而是将它们分为不同的年份。例如,如果他们有2012年和2013年的评级,它会列出2012年的评级,2013年为空,然后有另一个2013年评级和2012年为空的记录。是的,对不起,我没有仔细阅读:)Baltov的最佳答案这不是将它们合并,而是将它们分为不同的年份。例如,如果他们有2012年和2013年的评级,它会列出2012年的评级,2013年为空,然后有另一个2013年评级和2012年为空的记录。是的,对不起,我没有仔细阅读:)Baltov的最佳答案这不是将它们合并,而是将它们分为不同的年份。例如,如果他们有2012年和2013年的评级,它将列出2012年的评级,2013年为空,然后有另一个2013年评级和2012年为空的记录是的,对不起,没有仔细阅读:)baltovI的最佳答案在我运行此操作时出现转换错误,尝试将一个实际评级从NVARCHAR转换为INTIf会议准备就绪评级不是数字,请将其转换为数字,以防运行此操作时出现转换错误,尝试将一个实际评级从NVARCHAR转换为INTIf会议准备就绪评级不是数字,将其转换为数字以防“我运行此程序时出现转换错误,尝试将其中一个实际评级从NVARCHAR转换为INTIf Meeting_Readiness_评级不是数字,将其转换为数字以防”我运行此程序时出现转换错误,尝试将一个实际评分从NVARCHAR转换为INTIf Meeting_Readiness_Rating不是一个数字,但如果我需要2012年和2013年,请将其转换为数字,为什么您只使用Meeting year=2013您在外部查询中得到2012年,而在内部查询中得到2013年我需要2012年和2013年,为什么你只使用会议年=2013你在外部查询中得到2012年,在内部查询中得到2013年我需要2012年和2013年,为什么你只使用会议年=2013你在外部查询中得到2012年,在内部查询中得到2013年我需要2012年和2013年,为什么只使用meeting year=2013在外部查询中使用2012,在内部查询中使用2013
SELECT Employee_ID, 
    CASE Meeting_Year WHEN 2012 THEN Meeting_Readiness_Rating ELSE NULL END as [2012 Meeting Rating],
    CASE Meeting_Year WHEN 2013 THEN Meeting_Readiness_Rating ELSE NULL END as [2013 Meeting Rating]
FROM  dbo.v_sc17_TMS_Data_Career_Meeting_Rating
GROUP BY Employee_ID, Meeting_Year, Meeting_Readiness_Rating
SELECT  yr_2012.Employee_ID     
        ,yr_2012.Meeting_Readiness_Rating AS [2012_Meeting_Rating]
        ,yr_2013.Meeting_Readiness_Rating AS [2013_Meeting_Rating]
FROM    dbo.v_sc17_TMS_Data_Career_Meeting_Rating as yr_2012
        CROSS APPLY (
            SELECT  mr.Meeting_Readiness_Rating
            FROM    dbo.v_sc17_TMS_Data_Career_Meeting_Rating as mr
            WHERE   mr.Meeting_Year = '2013' AND
                    yr_2012.Employee_ID = mr.Employee_ID
        ) yr_2013
WHERE   Meeting_Year = '2012' ;
   SELECT Employee_ID, sum(r2012) as '2012 Meeting Rating', sum(r2013) as '2013 Meeting Rating' from 
    (SELECT Employee_ID, 
       CASE Meeting_Year WHEN 2012 THEN Meeting_Readiness_Rating ELSE 0 END as r2012,
        CASE Meeting_Year WHEN 2013 THEN Meeting_Readiness_Rating ELSE 0 END as r2013 FROM  dbo.v_sc17_TMS_Data_Career_Meeting_Rating ) GROUP BY Employee_ID