我堅持使用T-SQL查詢。我認爲這是基本的。但我不知道。有人能夠友好地闡明它嗎?提前致謝!TSQL嵌套基本查詢
這是我的問題。我想編寫一個查詢來執行以下任務:
原始數據:
Department Type Salary Age
1 1 1000 30
1 2 1500 31
1 3 2000 25
2 1 250 35
2 2 50 20
2 3 300 35
理想情況下,我想有一個表,其中有如下信息:
Department Type Salary Age
1 3 2000 25
1 2 1500 31
1 1 1000 30
2 3 300 35
2 1 250 35
選擇基於每個部門的比較。我比較每個部門內每種類型的薪水。並選擇同一部門的工資大於或等於第一類的人員。然後在每個部門內,記錄按工資降序排列。
這是我的錯誤代碼。
SELECT Department, Type, Salary, Age
FROM Database.dbo.Table1
WHERE Salary >=
(
SELECT Salary
FROM Database.dbo.Table1
WHERE Type = 1
GROUP BY Department
)
GROUP BY Department
我希望插圖很清楚。如果不是,請隨時告訴我。我可以更多地解釋。
再次感謝!
達您好,感謝幫助!其實,支持是如此之快,我得到了雞皮疙瘩......我嘗試了你的代碼,它正在工作!但是,你可以解釋一下關於@t的一些信息嗎?我看到@小老鼠/玫瑰/帽子簽了很多,但不太明白它...... – Counter10000
@LinguisticsStudent - '@ t'是我給一個表變量的名字(T-SQL開始的大部分變量用'@')。一個表變量可以方便地編寫快速的,一次性的代碼來解答這裏的問題,因爲一旦SQL運行它就會消失 - 編寫這個腳本後我不必清理。 (他們也有其他用途)。請參閱[這裏](http://technet.microsoft.com/en-us/library/ms188927.aspx)以獲取更多信息。 –
嗨達米安,感謝您的解釋!我搜索了一下關鍵詞。另一個問題是,我實際上使用了一個視圖,而不是我工作中的表格。而且它不夠奇怪...是因爲它是一種視圖嗎?或者你有其他建議嗎?我認爲沒有錯字。代碼被執行,但影響了0行。 – Counter10000