【发布时间】: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