Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.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 在SELECT中将两个列表合并在一起_Sql_Sql Server_Database_Sql Server 2014 - Fatal编程技术网

Sql 在SELECT中将两个列表合并在一起

Sql 在SELECT中将两个列表合并在一起,sql,sql-server,database,sql-server-2014,Sql,Sql Server,Database,Sql Server 2014,如何将两个表组合成不包含主键的新表 例如: 第一张表: Team_Code ID ---------------------------------- 433 203994834 436 203994834 436 309228372 435 309228373 434 309228374 433

如何将两个表组合成不包含主键的新表

例如:

第一张表:

Team_Code           ID
----------------------------------
433                 203994834
436                 203994834 
436                 309228372
435                 309228373
434                 309228374
433                 399064113
number_of_times       Team_Code
------------------------------------
3                     433
2                     434
1                     435
1                     436
number_of_times    Team_Code      ID
---------------------------------------------
3                  433            203994834
2                  434            309228374  
1                  435            309228373
1                  436            203994834
第二张表:

Team_Code           ID
----------------------------------
433                 203994834
436                 203994834 
436                 309228372
435                 309228373
434                 309228374
433                 399064113
number_of_times       Team_Code
------------------------------------
3                     433
2                     434
1                     435
1                     436
number_of_times    Team_Code      ID
---------------------------------------------
3                  433            203994834
2                  434            309228374  
1                  435            309228373
1                  436            203994834
输出的第一行应该如下所示:

Team_Code           ID
----------------------------------
433                 203994834
436                 203994834 
436                 309228372
435                 309228373
434                 309228374
433                 399064113
number_of_times       Team_Code
------------------------------------
3                     433
2                     434
1                     435
1                     436
number_of_times    Team_Code      ID
---------------------------------------------
3                  433            203994834
2                  434            309228374  
1                  435            309228373
1                  436            203994834

使用CTE以提高可读性-

WITH CTE1 AS 
(
SELECT [Team_Code],[ID] FROM Fireman_Team WHERE Team_Code in (
  SELECT Answer.Team_Code FROM Answer WHERE
  Answer.Call_Number IN(
    SELECT Call_Number FROM (SELECT * FROM Call WHERE Call.Time_Started
      BETWEEN ('2016-01-01 00:00:00') AND 
      ('2016-01-31 23:59:59')) AS SSS)) 
)

;WITH CTE2 AS
(
SELECT COUNT(Team_Code) as number_of_times, 
Team_Code FROM (SELECT Answer.Team_Code FROM Answer WHERE
  Answer.Call_Number IN(
    SELECT Call_Number FROM (SELECT * FROM Call WHERE Call.Time_Started
      BETWEEN ('2016-01-01 00:00:00') AND 
      ('2016-01-31 23:59:59')) AS SSS)
) AS re GROUP BY Team_Code
)

SELECT b.[number_of_times], b.[Team_Code], a.[ID]
FROM CTE1 a
INNER JOIN CTE2 b
ON a.[Team_Code] = b.[Team_Code]

您使用的是
MySQL
还是
sqlserver
?请适当标记从第一次查询中有两行带有
Team_code 433
,您如何决定选择哪一行?您为什么选择
203994834
而不是
399064113
作为
Team_code
433
我想选所有的。我没有写所有的表,因为它很长。嗨,谢谢,但它写的对象名“query1”无效。和q1不能绑定。分号正确吗?和一起的
会像那样重复吗?我希望CTE2是(…
而不是
…);使用CTE2作为(…
)。