2014-12-03 68 views
-1

這裏如何編寫動態列創建的SELECT語句在哪裏Condtion在這裏,我想選擇下面提到如何編寫WHERE條件在樞軸

DECLARE @cols NVARCHAR(2000); 
    SELECT @cols = STUFF((SELECT DISTINCT TOP 100 PERCENT 
            '],[' + t2.PartID 
          FROM StudentAnswer AS t2 
          ORDER BY '],[' + t2.PartID 
          FOR XML PATH('') 
         ), 1, 2, '') + ']' 

    DECLARE @Query NVARCHAR(4000); 
    SET @Query= N' SELECT ExamID,StudentID,'[email protected]+' 
    FROM 
    (SELECT StudentID,PartID,ExamID 
         , CASE WHEN Ans=CorrectAns THEN 1 WHEN Ans!=CorrectAns THEN 0 END as Result 
       FROM StudentAnswer **//Where Condtion** 
      ) p 
      PIVOT (SUM(Result) 
         FOR PartID 
          IN ('[email protected]+') 
        ) AS pvt;' 
    EXECUTE(@Query); 

回答

0

我得到使用此回答..

DECLARE @cols NVARCHAR(2000); 
    SELECT @cols = STUFF((SELECT DISTINCT TOP 100 PERCENT 
            '],[' + t2.PartID 
          FROM StudentAnswer AS t2 
          ORDER BY '],[' + t2.PartID 
          FOR XML PATH('') 
         ), 1, 2, '') + ']' 

    DECLARE @Query NVARCHAR(4000); 
    SET @Query= N' SELECT ExamID,StudentID,'[email protected]+' 
    FROM 
    (SELECT StudentID,PartID,ExamID 
         , CASE WHEN Ans=CorrectAns THEN 1 WHEN Ans!=CorrectAns THEN 0 END as Result 
       FROM StudentAnswer WHERE ExamID=''EX201411E1''**// Here Use the tow single Qutation**`` 
      ) p 
      PIVOT (SUM(Result) 
         FOR PartID 
          IN ('[email protected]+') 
        )AS pvt;'      
    EXECUTE(@Query); 
0

只是簡單地做只特殊考試ID位置 .. ......

DECLARE @cols NVARCHAR(2000); 
SELECT @cols = STUFF((SELECT DISTINCT TOP 100 PERCENT 
           '],[' + t2.PartID 
         FROM StudentAnswer AS t2 
         ORDER BY '],[' + t2.PartID 
         FOR XML PATH('') 
        ), 1, 2, '') + ']' 

DECLARE @Query NVARCHAR(4000); 
SET @Query= N' SELECT ExamID,StudentID,'[email protected]+' 
FROM 
(SELECT StudentID,PartID,ExamID 
        , CASE WHEN Ans=CorrectAns THEN 1 WHEN Ans!=CorrectAns THEN 0 END as Result 
      FROM StudentAnswer Where ExamID = yourExamID 
     ) p 
     PIVOT (SUM(Result) 
        FOR PartID 
         IN ('[email protected]+') 
       ) AS pvt;' 
EXECUTE(@Query); 

如果您有任何問題與請註明還包括你的問題的更多細節以及輸出......