일부 조건이있는 테이블 table2
으로 계산하고 이동해야하는 일부 열이있는 table1
테이블이 있습니다. 조건을 충족시키기 위해 임시 테이블 #ttemp
을 작성하고 두 개의 새로운 변수 var1
및 var2
을 작성하여 임시 테이블을 변경하여 다른 컬럼을 기반으로 일부 값을 설정 한 다음 나중에 해당 조건을 점검합니다. 조건이 통과되면 일부 집계를 수행 한 다음 나중에 집계 된 열을 포함하는 table2
에 삽입합니다.SQL Server의 temp에서 IF 문을 사용하여 레코드를 테이블에 삽입하십시오. 2016
우선 table1
에서 #temp
테이블과 변수를 만듭니다.
SELECT *
INTO #ttemp
FROM table1
alter table #ttemp add var1 int
alter table #ttemp add var2 int
update #ttemp set var1 = -1
update #ttemp set var1 = 1
where error <> 0 and var1 = -1
update #ttemp var2 = -1
다음 var1
열과 #temp
테이블 (var1 = 0
및 var2 = -1
)로부터 열 var2
'값 값 cus_request
, cus_stay
의 평균을 계산하여 새로운 임시 테이블 #ttemp2
에 넣어.
IF var2 = -1 and var1 = 0
BEGIN
select y.id, y.avg(cus_request) as r_avg, y.avg(cust_stay) as s_avg
INTO #ttemp2
FROM #ttemp as y
UPDATE l
SET l.cus_request_avg = t.r_avg, l.cust_stay_avg = t.s_avg
FROM table2 as l
inner join #ttemp2 as t
t.id = l.id
END
내 문제는 내 IF 문이 작동되지 않고 그냥 select
문을 실행하고 update
문이 잘 작동하지만 업데이트 문 다음에, 그것을 내가 만족하지 않는 조건으로 0 rows affected
을 얻을합니다. insert
대신 update
을 사용하고 있습니다. 레코드를 table2
에 어떻게 삽입 할 수 있습니까?
도움을 주시면 감사하겠습니다.
BEGIN은 어디 있습니까? –
전체 검색어를 게시 할 수 있습니까? 나는 당신의 IF가 맞는 방법을 실제로 얻지 못하고 있습니다. IF를 사용하면 값이 아닌 컬럼을 비교하고자합니다. 당신이 거기에서 한 일은 내가 상상할 수있는 WHERE 절에 의해 달성 될 수 있습니다. – Leonidas199x
@ Leonidas199x 'var1' 및'var2' 열의 값을 비교하고 있습니다. SQL Server의 초보자입니다. 'where' 절에서'var1'과'var2'의 값 비교를 설정할 수 있다는 것을 의미합니까? –