关于与另一个不同值相关联的特定值的count语句,我需要一些帮助。让我们试着解释一下。
当前数据(输出)
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
M主要成员 S配偶 C儿童依赖
数据包含更多列,例如名字等。但我希望Ben Type指标的计数仅反映显示Principle Members信息的行(Ben Type = M)。
以下代码统计所有Ben类型指标,而不使用策略编号作为非重复值。可以有X 1政策编号和X 1会员编号。因此,不同的值将是政策编号和会员编号。
UPDATE
[XRef1]
SET
[Child] =
(SELECT COUNT([Ben Type])
FROM
[Xref1]
WHERE
[Ben Type] = 'C')
这是我尝试的另一个例子,但我知道它可能不会工作,因为它不会返回所有列,只有策略号和计数将是不正确的? 生成以下错误。 (当未使用EXISTS引入子查询时,只能在选择列表中指定一个表达式)
UPDATE
XRef1
SET
[Child] =
(SELECT DISTINCT[Policy Number],COUNT([Ben Type])
FROM
XRef1
WHERE
[Ben Type] = 'C'
GROUP BY
[policy Number])
我对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])
请告诉我,如果我在正确的轨道上,或者试图让它变得比实际更复杂。