2014-03-25 37 views
0

我需要選擇屬於學期A的所有學生,並且是來自學生註冊表的不同組的一部分,並將這些結果與檢查他們是否註冊了除期限A以外的任何其他條款,以及他們是否有類似的團體。如果他們有不同的組,那麼我需要顯示的結果形式期限A和比A如何顯示所有重複結果,同時與同一表中的一組結果進行比較

> SELECT sra.studentid,sra.StudentName,sra.Term,sra.Group 
FROM StudentReg sra 
join (select * from 
(SELECT sra1.studentid,sra1.StudentName,sra1.Term,sra1.Group 
FROM StudentReg sra1 
)mq where mq.Term <> 'A' 
)sra1 on sra.StudentID=sra1.StudentID  
where sra.Term='A' 

這顯示只有誰已登記的期限A.同組結果的其它項的結果,但我需要顯示他們兩個,一個來自任期A,另一個來自非A任一團隊。

回答

0

您在第一次選擇時只有表格sra中的字段,適用於輸出。所以,把你的字段列表從SRA1這個選擇,也:

SELECT sra.studentid,sra.StudentName,sra.Term,sra.Group, 
sra1.studentid,sra1.StudentName,sra1.Term,sra1.Group 
FROM StudentReg sra 
join (select * from 
(SELECT sra1.studentid,sra1.StudentName,sra1.Term,sra1.Group 
FROM StudentReg sra1 
)mq where mq.Term <> 'A' 
)sra1 on sra.StudentID=sra1.StudentID  
where sra.Term='A' 

這將導致數據輸出到長期A和比其他A.長期

你的說法可以更簡單的是這樣的:

SELECT sra.studentid,sra.StudentName,sra.Term,sra.Group, 
    sra1.studentid,sra1.StudentName,sra1.Term,sra1.Group 
    FROM StudentReg sra 
    JOIN StudentReg sra1 on sra.StudentID=sra1.StudentID  
WHERE sra.Term='A' and sra1.Term <> 'A' 

我沒有看到子選項的需要。

相關問題