我需要一些關於與另一個不同值相關的特定值的count語句的幫助。讓我們試着解釋一下。在SQL上用不同的條件計算一個不同的值
當前數據(輸出)
Policy Number|Member Number|Ben Type|Principal|Spouse|Child
1234 ABCD M
1234 ABCD S
1234 ABCD C
1234 ABCD C
1234 EFGH M
1234 EFGH C
1234 EFGH C
所需的輸出報告
Policy Number|Member Number|Ben Type|Principal|Spouse|Child
1234 ABCD M 1 1 2
1234 EFGH M 1 0 2
中號主要成員 配偶 C子元素相關
的數據包含更多的列第一個例子ame等等。然而,我希望Ben Type指標的計數僅反映在顯示主成員信息的行上(Ben Type = M)。
以下代碼計算所有Ben類型指標而不使用策略編號作爲不同的值。可以有X 1個成員號碼的X2政策號碼。因此,不同的價值將是政策編號和會員編號。
UPDATE
[XRef1]
SET
[Child] =
(SELECT COUNT([Ben Type])
FROM
[Xref1]
WHERE
[Ben Type] = 'C')
這裏是另一個例子,我試過,但我知道它可能不會,因爲它不會返回所有列,只有政策數量和次數將是不正確的工作? 生成以下錯誤。
UPDATE
XRef1
SET
[Child] =
(SELECT DISTINCT[Policy Number],COUNT([Ben Type])
FROM
XRef1
WHERE
[Ben Type] = 'C'
GROUP BY
[policy Number])
我什麼都不知道真正關心EXISTS的語句(只有一個表達式可以在選擇列表時,子查詢不與EXISTS引入指定),但是我讀了它,並遵循一些查詢並來到下面。這是不正確的,基本上,子查詢是主查詢的副本。生成了同樣的錯誤。
UPDATE
XRef1
SET
[Child] =
(SELECT DISTINCT[Policy Number],COUNT([Ben Type])
FROM
XRef1
WHERE
[Ben Type] = 'C'
GROUP BY
[policy Number])
WHERE EXISTS
(SELECT DISTINCT[Policy Number],COUNT([Ben Type])
FROM
XRef1
WHERE
[Ben Type] = 'C'
GROUP BY
[policy Number])
請告訴我,如果我在正確的軌道上,或試圖使這比它實際上更復雜。
你確定你需要更新嗎? –
簡單的PIVOT,政策編號和會員編號爲行,Ben鍵入您的列和計數作爲您的價值如何。如果你仍然想讓Ben Type出現,總是用'M'的值,最後只是CROSS JOIN。如果你願意的話,我可以擴展。 –
是的,請你可以擴大這一點,我認爲我遵循,但不是100%相信我做的。 –