我需要基於沿相同代碼的深度間隔分組來生成彙總表。我嘗試了使用Minimum From_Depth和Meximum To_Depth的簡單group by子句,但它消除了重疊更改。下面是例子:如何避免重疊深度間隔範圍何時使用分組子句
Create Table #Lithology (
Hole_ID varchar(10)
, mFrom int
, mTo int
, Strat varchar(10)
,Strand varchar(10)
)
insert into #Lithology (Hole_ID, mFrom, mTo, Strat, Strand) values ('MD4803', 0, 2, 'CzD3', 'ALU');
insert into #Lithology (Hole_ID, mFrom, mTo, Strat, Strand) values ('MD4803', 2, 4, 'CzD3', 'ALU');
insert into #Lithology (Hole_ID, mFrom, mTo, Strat, Strand) values ('MD4803', 4, 6, 'CzD3', 'SCR');
insert into #Lithology (Hole_ID, mFrom, mTo, Strat, Strand) values ('MD4803', 6, 8, 'CzD3', 'SCR');
insert into #Lithology (Hole_ID, mFrom, mTo, Strat, Strand) values ('MD4803', 6, 8, 'CzD3', 'SCR');
insert into #Lithology (Hole_ID, mFrom, mTo, Strat, Strand) values ('MD4803', 8, 10, 'CzD2', 'CIDW');
insert into #Lithology (Hole_ID, mFrom, mTo, Strat, Strand) values ('MD4803', 10, 12, 'CzD2', 'CIDW');
insert into #Lithology (Hole_ID, mFrom, mTo, Strat, Strand) values ('MD4803', 12, 14, 'CzD2', 'CIDO');
insert into #Lithology (Hole_ID, mFrom, mTo, Strat, Strand) values ('MD4803', 14, 16, 'CzD2', 'CIDW');
insert into #Lithology (Hole_ID, mFrom, mTo, Strat, Strand) values ('MD4803', 16, 18, 'CzD2', 'CIDW');
insert into #Lithology (Hole_ID, mFrom, mTo, Strat, Strand) values ('MD4803', 18, 20, 'NAM', 'TNAM');
insert into #Lithology (Hole_ID, mFrom, mTo, Strat, Strand) values ('MD4803', 20, 22, 'NAM', 'TNAM');
insert into #Lithology (Hole_ID, mFrom, mTo, Strat, Strand) values ('MD4803', 22, 24, 'NAM', 'SNAM');
insert into #Lithology (Hole_ID, mFrom, mTo, Strat, Strand) values ('MD4803', 24, 26, 'NAM', 'SNAM');
insert into #Lithology (Hole_ID, mFrom, mTo, Strat, Strand) values ('MD4803', 26, 28, 'NAM', 'SONAM');
insert into #Lithology (Hole_ID, mFrom, mTo, Strat, Strand) values ('MD4803', 28, 30, 'NAM', 'SONAM');
insert into #Lithology (Hole_ID, mFrom, mTo, Strat, Strand) values ('MD4803', 30, 32, 'NAM', 'SNAM');
insert into #Lithology (Hole_ID, mFrom, mTo, Strat, Strand) values ('MD4803', 32, 34, 'NAM', 'SNAM');
insert into #Lithology (Hole_ID, mFrom, mTo, Strat, Strand) values ('MD4803', 34, 36, 'NAM', 'NNAM');
insert into #Lithology (Hole_ID, mFrom, mTo, Strat, Strand) values ('MD4803', 36, 38, 'NAM', 'NNAM');
select Hole_ID
, min(mFrom) StartDepth
, max(mTo) EndDepth
, Strat, Strand
from #Lithology
group by Hole_ID, Strat, Strand
order by MIN(mFrom)
它返回以下結果,重疊的深度範圍。
Hole_ID StartDepth EndDepth Strat Strand
MD4803 0 4 CzD3 ALU
MD4803 4 8 CzD3 SCR
MD4803 8 18 CzD2 CIDW
MD4803 12 14 CzD2 CIDO
MD4803 18 22 NAM TNAM
MD4803 22 34 NAM SNAM
MD4803 26 30 NAM SONAM
MD4803 34 38 NAM NNAM
預期的結果是,如下面沒有重疊的時間間隔:
Hole_ID StartDepth EndDepth Strat Strand
MD4803 0 4 CzD3 ALU
MD4803 4 8 CzD3 SCR
MD4803 8 12 CzD2 CIDW
MD4803 12 14 CzD2 CIDO
MD4803 14 18 CzD2 CIDW
MD4803 18 22 NAM TNAM
MD4803 22 26 NAM SNAM
MD4803 26 30 NAM SONAM
MD4803 30 34 NAM SNAM
MD4803 34 38 NAM NNAM
任何建議,將不勝感激。 謝謝。
請編輯你的問題標題和刪除連字符。 – 2014-12-04 08:11:50