Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.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_Join_Select_Window Functions - Fatal编程技术网

如何在SQL Server中联接表,以便每行联接一次

如何在SQL Server中联接表,以便每行联接一次,sql,sql-server,join,select,window-functions,Sql,Sql Server,Join,Select,Window Functions,我有两个表,如下所示: 我需要以某种方式加入他们,以实现此结果集: 你知道我该怎么做吗?你可以用行数()和完全联接来枚举每个日期每个表的行,结果如下: select t1.prof, t2.project, coalesce(t1.date, t2.date) date, t1.amount amount1, t2.amount amount2 from ( select t1.*, row_number

我有两个表,如下所示:

我需要以某种方式加入他们,以实现此结果集:


你知道我该怎么做吗?

你可以用
行数()和
完全联接来枚举每个日期每个表的行,结果如下:

select 
    t1.prof, 
    t2.project, 
    coalesce(t1.date, t2.date) date,
    t1.amount amount1,
    t2.amount amount2
from (
    select 
        t1.*,
        row_number() over(partition by date order by prof) rn
    from table1 t1
) t1
full join (
    select 
        t2.*,
        row_number() over(partition by date order by project) rn
    from table2 t2
) t2 on t1.date = t2.date and t1.rn = t2.rn

你需要解释你的“逻辑”/意图是什么-仅仅发布那些表并不能真正告诉我们你在做什么…从命名你的表开始,解释不同字段的含义以及wiich字段之间的关系。例如:具有相同日期的行是否“属于彼此”?是否希望具有相同数量的行匹配?这么多问题。。。请解释你的推理是什么,从两个表格到合并表格。仅将图像用于不能表示为文本或扩充文本的内容。请不要要求我们做你的家庭作业。