返回将这些值重命名为多个列

时间:2017-05-23 06:26:28

标签: sql

目前,我一直在调整一些SQL内容来帮助我完成Power BI报告。

目前,这是我正在使用的代码

SELECT DISTINCT custf.FieldValue AS ID
FROM CustomFields custf
    INNER JOIN ProjectFields projf 
        ON projf.ProjectFieldId = custf.ProjectFieldId
    INNER JOIN Projects proj 
        ON proj.ProjectId = projf.ProjectId
WHERE proj.TenantId = '130' 
   AND proj.ProjectId='1650' 
   AND projf.Name = 'UnitAmount'

然而,数据库的设置方式对我来说似乎非常“奇怪”。因为为了让我返回一个字段的值,我必须引用另外两个表(正如你在语句中看到的那样)

我的问题是虽然我需要从一个表中返回两列(或更多)但是区分数据的唯一方法(因为它全部在一列中)是字段的名称(projf.Name = #Field name我想要返回#)

是否可以返回UnitAmount和InvoiceDate,即使我需要更改WHERE条件?

非常感谢任何帮助,反馈或推动正确的方向

1 个答案:

答案 0 :(得分:0)

这是您希望使用IN子句的地方。您还需要在SELECT

中添加其他字段
SELECT DISTINCT projf.Name,
    custf.FieldValue AS ID
FROM CustomFields custf
    INNER JOIN ProjectFields projf 
        ON projf.ProjectFieldId = custf.ProjectFieldId
    INNER JOIN Projects proj 
        ON proj.ProjectId = projf.ProjectId
WHERE proj.TenantId = '130' 
    AND proj.ProjectId = '1650' 
    AND projf.Name IN ('UnitAmount', 'InvoiceDate')