2010-04-08 39 views
1

獲得UID時集團我做一個選擇從表SQL通過

[V_RPT_BelegungKostenstelleDetail] 
WHERE SO_UID = '7C7035C8-56DD-4A44-93CC-F16FD66280A3' 
AND GB_UID = '4FF1B0EE-A5DD-4699-94B7-760922666CE2' 
AND GS_UID = '1188759A-54E1-4323-8BF2-85E71B3C796E' 
AND RM_UID = '088C3559-6E6E-468A-9554-6740840FCBA1' 
AND NA_UID= '96A2A8DB-8C83-4C60-9060-F0F55719AF5C' 
GROUP BY KST_UID 

我怎樣才能得到SO_UID?它到處都是一樣的,但是當我嘗試使用返回值獲取SO_UID時,出現錯誤...

SO_UID不是必需的,如'7C7035C8-56DD-4A44-93CC-F16FD66280A3',所以我可以只是手動添加它作爲字符串。

+0

你能不能給更多詳細信息,請參閱您的select子句中的內容以及V_RPT_BelegungKostenstelleDetail中的幾行示例數據,以解釋SO_UID將如何重複(不知道我是否理解正確)? – IsmailS 2010-04-08 06:50:24

回答

2

您需要使用aggregate function來獲取其他列數據。正如本專欄將始終具有相同的值(感謝WHERE條款),你可以使用MAX()

SELECT KST_UID, MAX(SO_UID) 
FROM [V_RPT_BelegungKostenstelleDetail] 
WHERE SO_UID = '7C7035C8-56DD-4A44-93CC-F16FD66280A3' 
AND GB_UID = '4FF1B0EE-A5DD-4699-94B7-760922666CE2' 
AND GS_UID = '1188759A-54E1-4323-8BF2-85E71B3C796E' 
AND RM_UID = '088C3559-6E6E-468A-9554-6740840FCBA1' 
AND NA_UID= '96A2A8DB-8C83-4C60-9060-F0F55719AF5C' 
GROUP BY KST_UID 
+0

操作數數據類型uniqueidentifier對於最大操作符無效 – 2010-04-08 09:08:27

+0

@Quandary - 從MSDN:「MAX可以與數字,字符和日期時間列一起使用」 – Oded 2010-04-08 10:43:38

+0

是的,但是我有UID – 2010-04-20 11:20:05

0

正確的答案很簡單,只要問題是愚蠢的:

SELECT KST_UID, SO_UID, GB_UID, RM_UID, NA_UID 
FROM [V_RPT_BelegungKostenstelleDetail] 

WHERE SO_UID = '7C7035C8-56DD-4A44-93CC-F16FD66280A3' 
    AND GB_UID = '4FF1B0EE-A5DD-4699-94B7-760922666CE2' 
    AND GS_UID = '1188759A-54E1-4323-8BF2-85E71B3C796E' 
    AND RM_UID = '088C3559-6E6E-468A-9554-6740840FCBA1' 
    AND NA_UID = '96A2A8DB-8C83-4C60-9060-F0F55719AF5C' 
GROUP BY KST_UID, SO_UID, GB_UID, RM_UID, NA_UID