我们有两个表,一个显示流程的结果,另一个显示错误或其他事件。有些列可以合并,而其他列则无法合并。每个表中都有唯一的列,因此我无法使用UNION ALL。
例如,我有以下列(还有更多但你明白了):
EventID | DateTime | Station | ErrMsg
ResultID | DateTime | Station | MatNum | SerialNum
因此,每个示例表中的前三列可以合并,但其他列需要自己的列。
这里的想法是用日期/时间覆盖错误和顺序的结果,以便我们可以看到是否有任何处理步骤导致错误。
我尝试过不同的联盟,工会等,但并没有得到我想要的东西。
有什么想法吗?
答案 0 :(得分:1)
这在技术上是有效的,如果这真的是你想要的输出......
Select
EventID, DateTime, Station, ErrMsg, NULL
from Events
UNION ALL
Select
ResultID, DateTime, Station, MatNum, SerialNum
from Results
答案 1 :(得分:0)
由于前三列具有兼容的数据类型,而其他列不需要为每个不兼容的列分隔列。我还会添加一个鉴别器列,以便您可以立即告诉该行来自哪个数据源:
Select
'E' src, EventID, DateTime, Station, NULL, NULL, ErrMsg
from Events
UNION ALL
Select
'R' src, ResultID, DateTime, Station, MatNum, SerialNum, NULL
from Results