【问题标题】:How can I join one below the other (not fusioning/merging data) 3 columns from 3 different tables in SQL?如何在 SQL 中加入来自 3 个不同表的 3 个列(不融合/合并数据)?
【发布时间】:2021-04-18 15:07:29
【问题描述】:

在 Pentaho - Spoon 我想从 3 个不同的表(每个表中的一个字段)中选择并连接 3 列,这些列是与日期相关的字段并以不同的方式命名,并将所有数据连接到一个将被调用的列中日期。我试着用一个步骤来做,但找不到它,所以我认为最简单的方法是编写脚本。任何想法?我迷路了……谢谢!!

我从以下开始: 选择 dbo.SCHOOL.Date、dbo.STUDENT.Year、dbo.EXAMS.Year FROM dbo.SCHOOL、dbo.STUDENT、dbo.EXAMS

【问题讨论】:

    标签: sql sql-server pentaho-spoon spoon


    【解决方案1】:

    如果要合并数据,请使用 UNION 而不是 JOIN。如果您的所有列都具有相同的数据类型(日期)。

    SELECT Date, 'SchoolTable' FROM dbo.School
        UNION  
    SELECT Year, 'StudentTable' FROM dbo.Student
        UNION
    SELECT Year, 'ExamsTable' FROM dbo.Exams
    

    或提供有关表格的更多信息

    【讨论】:

    • 嗨!谢谢队友,但对我来说没有帮助,它说年份字段不明确,一旦我运行它,它似乎只有 3 条记录,哈哈。没有线索,可能问题出在字段的类型上
    • 顺便说一句,“SchoolTable”是为了澄清还是需要在脚本中?
    • 您可以删除第二个字段(SchoolTable,..),它只是为了显示相关行的表的名称。如果您收到不明确的列名错误(它与 UNION 无关,可能与 JOIN 无关),请在查询中为表设置别名并在字段名之前使用它。 SELECT s.Year FROM dbo.School AS s ....
    猜你喜欢
    • 1970-01-01
    • 2017-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多