Sql 连接中的行太多
我试图连接两个表,其中我希望结果只是结果表中的两个额外的列,而不是额外的行 我的目的是在属性值为True且属性名称为三种不同类型时获取属性 当我加入这些表时,我当然会在每个现有属性名中多得到一行,但我不知道如何限制这一点 也就是说,在下面的代码中,我只希望为每个现有行(Trade_Id)获取一个具有ForwardCurveName和属性_Name的列。 案例代码是在另一个表的属性_值为True且仅针对三种不同类型的_名称时,为我提供所需的输出 在属性表中,有15个属性,可以有多个“真”属性 这是我在这里的第一个问题,所以我希望我可以理解!谢谢 一些样本数据:Sql 连接中的行太多,sql,join,case,where-clause,Sql,Join,Case,Where Clause,我试图连接两个表,其中我希望结果只是结果表中的两个额外的列,而不是额外的行 我的目的是在属性值为True且属性名称为三种不同类型时获取属性 当我加入这些表时,我当然会在每个现有属性名中多得到一行,但我不知道如何限制这一点 也就是说,在下面的代码中,我只希望为每个现有行(Trade_Id)获取一个具有ForwardCurveName和属性_Name的列。 案例代码是在另一个表的属性_值为True且仅针对三种不同类型的_名称时,为我提供所需的输出 在属性表中,有15个属性,可以有多个“真”属性 这是
- 在属性表中 列实体_键与Trade_Id相同,并以其15个不同的属性值显示15次 列属性_值由False、True、id、number和name组成,因为它是许多不同值的混合体
Attribute\u Name
是不同值的文本名称,我只对这些名称“NCG”、“GPN”、“TTF”感兴趣
(不知道如何在没有截图的情况下替换数据,这在我阅读的这些文章中是不允许的)
一行
实体Id
属性值
属性名称
数据类型
1.
NE00020216
真的
NCG
布尔值
2.
NE00020216
假的
TTF
布尔值
3.
NE00020216
假的
GPN
布尔值
4.
NE00020216
5.
其他名称
数
5.
....
6.
....
欢迎来到S/O。你可能非常接近。如果属性表有多行,这就是返回多行的原因。但是,如果您的属性表只有一个AtditTyValue=“true”,那么我已经将它移出该情况/时,并将其移动到连接,因此它只考虑返回“true”属性。 现在,如果您有多个属性为true的可能性,那么仍然会返回多行。编辑你现有的文章,展示一些现在和将来的样本数据,也会帮助其他人更好地帮助你
select
t.Trade_Id,
TP.Start_Trade as Day,
-- Due to the Start_Trade code, this volume is only for the future periods, and not the total for each trade
tp.volume * 12.157 / 1000 Contracted_Volume,
tp.volume * 12.157 / 1000 / 24 MwH,
t.Counterparty_name,
t.Trade_Type,
t.Product_Type_Name,
month(TP.Start_Trade) as Month,
year(TP.Start_Trade) as Year,
case when a.attribute_name = 'NCG' then 'NCG Heren'
when a.attribute_name = 'TTF' then 'TTF Heren'
when a.attribute_name = 'GPN' then 'GPN Heren'
else 'Mistake' end ForwardCurveName,
a.Attribute_Name
from
entrader.Trades_vw T
--Left join [Reporting].[Trade_Hubs_vw] TH on t.Trade_Id = Th.Trade_Id
left JOIN Entrader.Trade_Period_vw TP
ON T.Trade_Id = TP.Trade_Id
left join core.Attribute_Values_vw A
on t.Trade_Id = a.Entity_Key
AND a.Attribute_Value = 'true'
答案取决于您想保留哪一行和避免哪一行。请澄清此详细信息。您可以添加“我正在获取此信息:…”和“我希望获取此信息:…”谢谢,已使用您的输入进行更新。您好,DRapp,谢谢您的回复,您是对的,属性表中可以有多个值设置为True。所以很不幸,你的优秀代码并没有解决我的问题,尽管它离我越来越近了!我试图添加一些示例数据,但不确定如何显示。