我需要将它加入到表B中,该表具有许多具有相同Policy#和QuoteID但具有不同WeightCode和ClassCode的行。
如何加入这两个表,以便我只能保留表A中的一个(WP)? 因为稍后,当我在SSRS中求和(WP)时,它会给我错误的数字。
让我说我想要的东西只有一个WP = 16630而休息是0:
答案 0 :(得分:1)
我同意这些评论,看起来你正试图解决错误的问题。如果您正在使用SSRS,那么您可以拥有多个数据集,您可以在报告的不同部分使用这些数据集。您将第一个数据集设为TableA
,第二个数据集为TableB
。我相信这可能是你最好的选择。
但是如果你真的想在一个查询中使用该数据集,那么应该这样做:
SELECT
b.QuoteID,
b.PolicyNumber,
b.WeightClass,
b.SecondaryLiabFactor,
b.ClassCode,
CASE
WHEN ROW_NUMBER() OVER(PARTITION BY a.QuoteID ORDER BY (SELECT 0)) = 1 THEN a.WP
ELSE 0
END,
a.YearNum,
a.MonthNum
FROM TableA AS a
INNER JOIN TableB AS b ON a.QuoteID = b.QuoteID
它使用ROW_NUMBER()
检查它是否是连接中的第一条记录,如果是,则返回WP
值,否则显示0
。 ORDER BY (SELECT 0)
只是因为您不需要基于任何显式订单的行号。