2016-08-03 2 views
0

나는 올바른 방향으로 나를 가리키는 누군가를 찾고 있습니다. 이것을 묻는 방법조차 모릅니다. 내가 사용하고있는 구어체에서 찾을 수있는 모든 것은 별도의 테이블에서 결과를 결합하는 것에 관한 것입니다.SQL Server : 단일 선택 행에 여러 개의 선택 결과 삽입

나는 하나의 테이블을 가지고 있으며 하나의 행에있는 다른 테이블로 이동하기 위해 여러 개의 선택 결과가 필요합니다. 그래서 하나의 결과 행으로 필요한 여러 select/as/where 쿼리에서 새로운 행을 삽입해야합니다.

실제 기본적인 의미에서 필자는 10 개 이상의 결과를 날짜/시간 참조가있는 10 개 이상의 행에 넣어야합니다.

Insert into [table2].[namealias1] 
    Select [number] as namealias1 
    From [db].[table] 
    Where [name] = 'name1' 

표 (소스)

[NAME] [NUMBER] 
내가 어떤 SQL을 수행하고 내가 조언하고 찾고 있어요 때문에

DATESTAMP NameAlias1 NameAlias2 

그것은 오랜 시간이되었습니다

표 2 (대상) 올바른 방향으로 밀기. 이것을 공격하는 가장 좋은 방법에 대한 힌트조차 있습니다. SQL Server 2012를 사용 중입니다.

미리 도움을 요청하십시오.

+0

단일 행에 있어야 할 사항은 무엇입니까? 각 숫자에 대해 하나의 열? 쿼리에서 100 개의 행을 반환하는 경우 단일 행에 100 개의 열이 있어야합니까? – artm

+0

첫번째 조합을 하나의 테이블에 넣은 다음 저장 방법을 사용하십시오 –

+0

CTE 또는 임시 테이블이 필요하다고 생각합니다. – cautrey

답변

0

아마도 CTE가 문제의 원인이 될 수 있습니다.

내가 각 SELECT 문 결과에 대한 변수를 선언하고 삽입 성명에서 변수를 사용 : 당신은이 (의사 코드) 같은

;with cte1 as 
(
    select col1, col2, ... ,colN 
    from table1 
    where conditions_for_table1 
), 
cte2 as 
(
    select col1, col2,... colK 
    from table2 
    where conditions_for_table2 
), 
...... 
...... 

insert into final_table(talbe columns here) 
select c1.col1,c2.col3, ... cM.colK 
from cte1 c1 
left join /*inner join*/ cte2 c2 on c1.joining_column = c2.joinint_column and ... 
..... 
left join cteM cM /*inner join*/ on ... 
+0

어제 CTE와 함께 일하고 있었지만 여러 조건에 대해 CTE를 수행하지 않았습니다. 이름으로 여러 행을 선택하고 각 선택된 행의 값을 표 2의 단일 행으로 반환해야합니다. – cautrey

+0

단일 행이란 무엇입니까? 어쩌면 CTE에서 얻은 데이터를 집계해야 할 것입니다. –

+0

이렇게하면 선택한 데이터에 변수를 할당하는 것과 같은 것입니까? – cautrey

0

브 루트 포스 방법이 필요합니다.