我一直在编写一个SQL查询以基于类似的ID组卷起多个余额,并针对标记为N的产品显示余额。我想我需要使用分区函数或最大功能来做到这一点。使用分区的SQL Server聚合
所需结果位于示例数据集下面的表格中。任何人都可以解决这个问题吗?
有人会知道逻辑来帮助吗?基本上我需要用ID将所有东西都分组,并且有N个标志的地方滚动到该记录的平衡点,如果没有N标志的记录,我们只需通过pdct_Type_C进行聚合。
SELECT
客户端,
SUM(限制)限制,
SUM(余额)余额,
SUM(曝光)曝光,
MAX(CASE WHEN标记= 'N' THEN Pdct_type_c ELSE NULL END)Pdct_type_c,
ID
FROM表
GROUP BY客户端,ID
样本数据集
Client | Limit | Balance | Exposure | Pdct_type_c | Flag | ID -------------------------------------------------------------------------------- John | 60,000,000.00| - | 5,000,000| DERIV | N | 2 John | - | 1,000,000.00 | - | FX | y | 2 John | - | 2,000,000.00 | - | IC | y | 2 John | 1,000,000.00 | 3,000,000.00 | - | DCO | y | 3 John | 1,000,000.00 | 3,000,000.00 | - | DCO | y | 3
当前结果
Client | Limit | Balance | Exposure | Pdct_type_c | Flag | ID -------------------------------------------------------------------------------- John | 60,000,000.00| 3,000,000.00 | 5,000,000| DERIV | N | 2 John | 2,000,000.00 | 6,000,000.00 | - | NULL | Y | 3
期望的结果
Client | Limit | Balance | Exposure | Pdct_type_c | Flag | ID -------------------------------------------------------------------------------- John | 60,000,000.00| 3,000,000.00 | 5,000,000| DERIV | N | 2 John | 2,000,000.00 | 6,000,000.00 | - | DCO | Y | 3
记录您需要告诉我们你已经尝试了什么。最基本的(假设你的样本代表了所有的数据),你需要使用GROUP BY,这是一个相当简单的查询。你也不应该将数据发布为图片。将它作为文本包含在实际问题中。请参阅:https://stackoverflow.com/help/how-to-ask – Alex
Thankyou,我发布了一个基本数据集,其中包含我正在寻找的结果。基本上我希望根据相同的ID汇总组,并将余额滚动到该组中的客户端,并将其标记为'N'。 – Patty