Sql 用一些不同的列连接两个相似的表
我们有两个表,一个显示流程的结果,另一个显示错误或其他事件。一些列可以组合,而其他列不能。每个表中都有唯一的列,因此我不能使用UNION ALL 例如,我有以下专栏(还有更多,但你知道了): 因此,每个示例表中的前三列可以合并,但其他列需要自己的列 这里的想法是用错误覆盖结果,并按日期/时间排序,以便我们可以查看是否有任何流程步骤导致错误 我尝试过不同的加入,联合,等等,但没有完全得到我想要的Sql 用一些不同的列连接两个相似的表,sql,Sql,我们有两个表,一个显示流程的结果,另一个显示错误或其他事件。一些列可以组合,而其他列不能。每个表中都有唯一的列,因此我不能使用UNION ALL 例如,我有以下专栏(还有更多,但你知道了): 因此,每个示例表中的前三列可以合并,但其他列需要自己的列 这里的想法是用错误覆盖结果,并按日期/时间排序,以便我们可以查看是否有任何流程步骤导致错误 我尝试过不同的加入,联合,等等,但没有完全得到我想要的 有什么想法吗?这在技术上是可行的,如果这真的是你想要的输出 Select EventID, DateT
有什么想法吗?这在技术上是可行的,如果这真的是你想要的输出
Select
EventID, DateTime, Station, ErrMsg, NULL
from Events
UNION ALL
Select
ResultID, DateTime, Station, MatNum, SerialNum
from Results
由于前三列具有兼容的数据类型,而其他列不具有兼容的数据类型,因此您需要为每个不兼容的列分隔列。我还添加了一个鉴别器列,以便您可以立即判断行来自哪个数据源:
Select
'E' src, EventID, DateTime, Station, NULL, NULL, ErrMsg
from Events
UNION ALL
Select
'R' src, ResultID, DateTime, Station, MatNum, SerialNum, NULL
from Results
为什么你不能加入他们,从这两个栏目中获取你需要的所有栏目<代码>事件。*、结果。*或您需要的名称列,当然,不要使用
*
获取所有列。有多少列?提供示例数据和所需结果。我希望具有相同数据类型的列位于同一列中,以提高排序效率,但其他列可能不同。此表实际上不是用于排序或管理数据,只是为了将两者叠加,以便我们可以看到过程中何时发生错误。有很多列,我不确定是否可以共享这些数据,因为这些数据来自工作。答案是正确的,所以我将尝试一下。谢谢,我不知道如果第二个表中没有匹配项,您可以在列名中插入“NULL”。谢谢,我不知道如果第二个表中没有匹配项,您可以在列名中插入“NULL”。我也喜欢添加表名的想法,我希望有一种方法可以做到这一点。
Select
'E' src, EventID, DateTime, Station, NULL, NULL, ErrMsg
from Events
UNION ALL
Select
'R' src, ResultID, DateTime, Station, MatNum, SerialNum, NULL
from Results