我有一個要求,我想從表CLIENT中拉出所有列,只有表CLIPHONE中的電話號碼。對於電話號碼,某些客戶在CLIPHONE中列出了多個電話號碼,但我只需要一個電話號碼。因此,如果客戶的描述中列出了他們的「小區」或「移動」,那麼我需要具有最小序列值的數字。如果未列出蜂窩或移動我想要的序列設定爲1個sql查詢完整的外部,案例當在哪裏
實施例:在CLIPHONE
喬伊A - 的clientid = 25,sourceloc = 1,電話= 1234567890,描述=家,序列= 1
喬伊A - 的clientid = 25,sourceloc = 1,電話= 0987654321,描述=細胞,序列= 2
喬伊A - 的clientid = 25,sourceloc = 1,電話= 1111111111,描述=移動,序列= 3
然後當我運行查詢我希望電話號碼0987654321能夠顯示來自CLIENT的列,因爲它包含單詞「cell」,並且序列比序列3中的'mobile'更低。如果序列號爲#2的手機在描述中有word office,那麼我希望序列3顯示在查詢結果中,因爲它現在是單詞「cell」或「mobile」中的最低字符
如果兩個序列2和3變成了「其他」,那麼我想讓序列1出現,因爲沒有其他序列具有「細胞」或「移動」。
隨着我的查詢我收到此錯誤: 消息147,15級,狀態1,5號線 聚合不應出現在WHERE子句中,除非它是包含在HAVING子句或選擇列表中的子查詢,並且被聚合的列是外部參考。
SELECT DISTINCT TOP 1000 cp.phone, c.*
FROM CLIENT C
FULL OUTER JOIN CLIPHONE CP
ON c.clientid = cp.clientid AND c.sourceloc = cp.sourceloc
WHERE cp.sequence = CASE WHEN (description LIKE '%mobile%' OR description LIKE '%cell%') THEN min(sequence) ELSE 1 END
ORDER BY sourceloc, clientid
這裏是我的表:
請提供相關表格的模式。謝謝 –
樣本數據和預期結果將確實有助於傳達您正在嘗試執行的操作。 –
@Joey - 你的回答必須以問題的形式出現。發生什麼事?你想要發生什麼? – Malvolio