2012-03-18 55 views
0

我有一個SQL squery,分組by子句對字符串列

SELECT * FROM gr_person as GR 
INNER JOIN ADDRESS ON GR.address_code = ADDRESS.address_code 
JOIN dbo.GR_PERSON_TYPES GPT 
ON GR.person_type = GPT.person_type 
WHERE event_number = '101000008' 
ORDER BY GPT.type_key 

返回

GR.event_number, GR.person_type, GR.customer_code, GPT.type_key, GPT.event_type, GPT.person_type 
101000008   Wife   10001    3    2     Wife 
101000008   Wife   10001    4    3     Wife 

我想這個查詢返回只有一行,如果GR.PERSON_TYPE是相同這個案例。

我試着通過GR.PERSON_TYPE添加一個組,但無法提供幫助。

有人可以告訴我該怎麼做嗎?

+1

這絕不會只是一行,除非通過不包含它們或將它們組合到數組中來聚合其他字段(例如'type_key','event_type')。 – vol7ron 2012-03-18 23:34:16

回答

0

您可以按person_type進行分組,以獲得組Wife的一個結果,但您需要彙總或排除其他列。

例如,如果您只想要Wife的一條記錄,那麼type_keyevent_type的值應該是多少?如果您想查看妻子組的最大或平均event_type,則可以使用max(event_type)avg(event_type)。你的DBMS的文檔應該能夠爲你解釋所有的聚合函數。

+0

我做了兩個單獨的查詢: 1)獲取除GR.PERSON_TYPE之外的所有列2)選擇GR.Person_type ONLY 然後將這些值傳遞給我的代碼。 這解決了我的錯誤。現在我根本沒有得到多個值。 謝謝你們,無論如何。我很感激。 這就是爲什麼我在這裏發佈我的問題。它總是有幫助的。 謝謝大家 – aMazing 2012-03-18 23:31:43