【发布时间】:2016-05-23 20:07:43
【问题描述】:
我在工作中使用 WiSys 的名为 Agility 的数据库程序。我遇到了一个不寻常的情况,我需要的部分数据位于特定表的一列中,而其余数据位于另一个表的另一列中。
我使用 UNION 来合并这些表,但我发现我无法添加报告其余部分所需的任何数据。当我这样做时,我收到一条错误消息,指出:使用 UNION、INTERSECT OR EXCEPT 运算符组合的所有查询必须在其目标列表中具有相同数量的表达式。
基本上,UNION 会根据需要工作,我已将数据合并到一列中,但是,我无法调用查询中所需的任何其他数据,因为 UNION 会阻止调用该数据。
这是我的查询,没有我需要的其他数据:
SELECT table1_sql.UnionColumn1,
FROM table1_sql
UNION
SELECT table2_sql.UnionColumn2 AS CombinedColumn
FROM table2_sql
ORDER BY CombinedColumn
我的报告中还需要包含这些额外列的 UNION:
SELECT table1_sql.UnionColumn1,
table1_sql.ExtraColumn1,
table1_sql.ExtraColumn2,
table1_sql.ExtraColumn3,
table1_sql.ExtraColumn4
FROM table1_sql
UNION
SELECT table2_sql.UnionColumn2 AS CombinedColumn
FROM table2_sql
ORDER BY CombinedColumn
我尝试检索的数据示例如下: Example Data 其中 Order_No 是我想通过 UNION 加入的数据,其他所有数据都是 UNION 也需要但不允许使用的数据。
Agility 程序不像其他程序那样强大,因此我在使用 UNION 的替代方案完成此报告的能力方面受到一定限制。请指教。
【问题讨论】:
-
您能否分享一些示例数据以及您想要获得的结果?这将有助于充实您的问题。
-
@Mureinik 我使用 UNION 来合并两个订单号列表,连同该列表,我需要销售日期、商品编号和商品数量。我将在我的问题中添加一个更好的示例,但一个简短的示例表如下:订单号 |日期 |项目_编号 |数量_Sold |
标签: mysql sql-server union