【问题标题】:SQL: SUB-QUERY in a JOIN statement returns 'Invalid Column Name' errorSQL:JOIN 语句中的 SUB-QUERY 返回“无效的列名”错误
【发布时间】:2023-02-23 03:22:07
【问题描述】:

我有以下查询,其中我有以下数据:

UPC LOCATION
0123 Albany
0123 Birmingham
0123 Austin
0124 Albany
0124 Birmingham
0125 Albany

我希望输出是:

UPC LOCATION
0123 Albany, Birmingham, Austin
0124 Albany, Austin
0125 Albany

我遇到的问题是我从两个不同的数据库中提取数据——A 和 B; UPC 来自 A 而 LOCATION 来自 B

所以我认为我需要将 JOIN 与包含 SELECT 语句的子查询一起使用,其中 A.FORMULA_ID = B.FORMULA_ID

这是我提出的查询:

SELECT 
    STRING_AGG(B.UPC, ', '), C.LOCATION
FROM
    [DBO].FSFORMULA B
JOIN
    (SELECT DISTINCT A.LOCATION
     FROM [DBO].LOCDETAIL A) AS C ON C.FORMULA_ID = B.FORMULA_ID

但我收到一个错误:

列名“FORMULA_ID”无效

它似乎指向C.FORMULA_ID

我不知道出了什么问题,所以任何帮助将不胜感激!

【问题讨论】:

  • 您没有在子查询中选择列 FORMULA_ID。您需要选择该列,否则您无法加入。
  • 您别名为 C 的子查询似乎只有一个 Location 列 - 而不是 Formula_ID 列。如果您想加入Formula_ID,您还需要在子查询中选择该列...

标签: sql join subquery string-agg


【解决方案1】:
SELECT 
    STRING_AGG(B.UPC, ', '), C.LOCATION
FROM
    [DBO].FSFORMULA B
JOIN
    (
       SELECT DISTINCT A.LOCATION, A.FORMULA_ID
       FROM [DBO].LOCDETAIL A
    ) AS C 
    ON C.FORMULA_ID = B.FORMULA_ID

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 2019-01-05
    • 1970-01-01
    • 2014-01-18
    • 2014-09-05
    相关资源
    最近更新 更多