针对T1列中特定记录的多个表的SQLQuery

针对T1列中特定记录的多个表的SQLQuery,sql,sql-server,Sql,Sql Server,我正在尝试编写select查询以提取数据,如下所示: T1 PARTN DESCRIPTION xx1 mouse xx2 Kb T2 PARTN COIN PRC1 PRC2 xx1 usd 2 4 xx1 eur 1 2 xx2 usd 4 8 xx2 eur 3 6 理想查询结果 PARTN PRCUSD1 PRCUSD2 PRCEUR1 PRCEUR2 xx1

我正在尝试编写select查询以提取数据,如下所示:

T1 
PARTN     DESCRIPTION
xx1       mouse      
xx2       Kb

T2 
PARTN COIN PRC1 PRC2    
xx1   usd  2    4 
xx1   eur  1    2 
xx2   usd  4    8
xx2   eur  3    6
理想查询结果

PARTN    PRCUSD1 PRCUSD2 PRCEUR1 PRCEUR2  
xx1      2       4       1       2
xx2      4       8       3       6
可能吗? 参见图


如果您事先知道货币,那么只需使用多个联接即可。如果不是这样,那么您可能需要一个动态SQL解决方案

select
    p.PARTN,
    usd.PRC1 as PRCUSD1, usd.PRC2 as PRCUSD2,
    eur.PRC1 as PRCEUR1, eur.PRC2 as PRCEUR2
from
    T1 p
    inner join T2 usd on usd.PARTN = p.PARTN and usd.COIN = 'usd'
    inner join T2 eur on eur.PARTN = p.PARTN and eur.COIN = 'eur'

您的图像与数据不匹配。请阅读,这里是学习如何提高问题质量和获得更好答案的好地方。您使用的是哪种DBMS提示:查找
PIVOT
您好,谢谢。你是对的,这是错的。假设它与图像中的最后一张表相似。DB在SQL server中,我使用的是SQL management studio。我们的想法是找到一个正确返回的查询,然后在vba项目中使用它。如果您选择了表T2中的“usd.PRC1”列,则很抱歉无法获取该查询。我不太明白你的问题。