Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server中第三个表中两个表的合并差异_Sql_Sql Server - Fatal编程技术网

SQL Server中第三个表中两个表的合并差异

SQL Server中第三个表中两个表的合并差异,sql,sql-server,Sql,Sql Server,我有表1和表2,其中包含此类数据 重新突出显示,在表2中有一个额外的数据字段我想要一个这样的结果表 由于三个突出显示的区域显示,如果表中的任何一个中都不存在某个内容,则该内容将在结果表中显示为null。我尝试了使用的不同解决方案,除了和不同的联接,但都不起作用。请提供一些解决方案。谢谢您可以使用完全外部联接来完成此操作: SELECT COALESCE(t1.[Date], t2.[Date]), CASE WHEN t1.[Group] IS NULL

我有表1和表2,其中包含此类数据

重新突出显示,在
表2中有一个额外的数据字段
我想要一个这样的结果表


由于三个突出显示的区域显示,如果表中的任何一个中都不存在某个内容,则该内容将在结果表中显示为null。
我尝试了使用
的不同解决方案,除了
和不同的
联接
,但都不起作用。请提供一些解决方案。谢谢

您可以使用
完全外部联接来完成此操作

SELECT COALESCE(t1.[Date], t2.[Date]),
       CASE 
          WHEN t1.[Group] IS NULL OR t2.[Group] IS NULL THEN NULL
          ELSE t1.[Group]
       END
FROM Table1 AS t1
FULL OUTER JOIN Table2 AS t2 
  ON t1.[date] = t2.[date] AND t1.[Group] = t2.[Group]

完全外部联接是答案,另外我将添加第三列,显示哪个表中有数据

select isnull(t1.[Date],t2.[Date]) [Date],
       isnull(t1.[Group], t2.[Group])   [Group],
       case 
            when t1.[Date] is null then 'Only on table 2'
            when t2.[Date] is null then 'Only on table 1'
            else 'On both tables'
        end 
from table1 as t1
full outer join Table2 as t2 
    on t1.[Date] = t2.[Date] AND t1.[Group] = t2.[Group]

left/full
join将完成任务。请共享查询:)共享不起作用的查询以查看错误(如果有)。如果您尝试了
outer
连接,但没有成功,这很奇怪。也许你在任务描述中遗漏了一些东西,因为现在根本没有什么复杂的东西。