表1:(省份、城市、数量、id)
江苏 南京 3 1
江苏 南京 3 2
江苏 南京 3 3
表2结果与表1一样
江苏 南京 2 4
江苏 南京 2 5
结果:
江苏 南京 5 1
江苏 南京 5 2
江苏 南京 5 3
江苏 南京 5 4
江苏 南京 5 5
2个表都是临时只是里面存放的数据不同结果是一样的
各位帮忙想下.
江苏 南京 3 1
江苏 南京 3 2
江苏 南京 3 3
表2结果与表1一样
江苏 南京 2 4
江苏 南京 2 5
结果:
江苏 南京 5 1
江苏 南京 5 2
江苏 南京 5 3
江苏 南京 5 4
江苏 南京 5 5
2个表都是临时只是里面存放的数据不同结果是一样的
各位帮忙想下.
江苏 南京 3 1
江苏 南京 3 2
江苏 南京 3 3
江苏 南京 3 4
江苏 南京 3 5
表2结果与表1一样
江苏 南京 2 6
江苏 南京 2 7
结果:
江苏 南京 5 1
江苏 南京 5 2
江苏 南京 5 3
江苏 南京 5 4
江苏 南京 5 5
江苏 南京 5 6
江苏 南京 5 7
其实核实数量和后面的id没有关系,可能题目里面给的数据会误导
核实数据量是所有给的数据的核实有效数,后面的id列出的是所有的数据
if object_id('tempdb.dbo.#TA') is not null drop table #TA
GO
create table #TA (省份 varchar(4),城市 varchar(4),数 int,id int)
insert into #TA
select '江苏','南京',3,1 union all
select '江苏','南京',3,2 union all
select '江苏','南京',3,3
--> 测试数据: #TB
if object_id('tempdb.dbo.#TB') is not null drop table #TB
GO
create table #TB (省份 varchar(4),城市 varchar(4),数 int,id int)
insert into #TB
select '江苏','南京',2,4 union all
select '江苏','南京',2,5;with cte as
(
select 省份,城市,id from #TA
UNION ALL
select 省份,城市,id from #TB
)
select *,n=(select count(*) from cte) from cte
省份 城市 id n
---- ---- ----------- -----------
江苏 南京 1 5
江苏 南京 2 5
江苏 南京 3 5
江苏 南京 4 5
江苏 南京 5 5(5 行受影响)
--> 测试数据: #TA
if object_id('tempdb.dbo.#TA') is not null drop table #TA
GO
create table #TA (省份 varchar(4),城市 varchar(4),数 int,id int)
insert into #TA
select '江苏','南京',3,1 union all
select '江苏','南京',3,2 union all
select '江苏','南京',3,3
--> 测试数据: #TB
if object_id('tempdb.dbo.#TB') is not null drop table #TB
GO
create table #TB (省份 varchar(4),城市 varchar(4),数 int,id int)
insert into #TB
select '江苏','南京',2,4 union all
select '江苏','南京',2,5;with cte as
(
select 省份,城市,id from #TA
UNION ALL
select 省份,城市,id from #TB
)
select *,n=(select sum(distinct 数) from #ta) +(select sum(distinct 数) from #tb)
from cte
省份 城市 id n
---- ---- ----------- -----------
江苏 南京 1 5
江苏 南京 2 5
江苏 南京 3 5
江苏 南京 4 5
江苏 南京 5 5(5 行受影响)