쿼리를 실행해야하는데이 쿼리를 실행하려면 Excel 파일의 데이터가 필요합니다. 그래서이 excel 파일을 임시 테이블에 읽도록 ETL 작업을 생성해야합니다. 사용자는 다른 날짜에 Ques_P_id를 변경할 수 있으므로 임시 테이블로 읽을 수 있습니다.다른 테이블 열에서 읽도록 변수를 선언하려면 어떻게해야합니까?
내 임시 테이블에 세 개의 열이 있습니다
Report_name | Ques_P_ID | Ques_R_ID
AAA 7(could be 1~12) 132
BBB 8(could be 1~12) 032
그리고 Ques_P_ID에 AAA 보고서 기지를 생성하는 또 다른 SQL 스크립트가 있습니다.
select a.contr_id, a.ques_r_id, a.ques_P_id,
max(case when ques_d_id = 320 then ques_d_id else NULL end) as "8-320",
max(case when ques_d_id = 321 then ques_d_id else NULL end) as "8-321"
from PODS.v_questionnaire_results_master A
left join PODS.v_questionnaire_results_detail B on A.ques_r_id = B.ques_r_id
where 1=1
and a.update_date = '20160824'
and a.ques_p_id = 8
and a.contr_id <> ''
group by 1,2,3;
이 쿼리는 ques_p_id = 8
contr_id ques_r_id ques_p_id 8-320 8-321
42315221 284806 8 320
44501488 282575 8 320
12817427 284460 8 320
11336635 284864 8 320
53040071 282691 8 321
50408289 284398 8 321
에 따라 보고서 AAA 보고서를 생성합니다 : 지금 나는 REPORT_NAME이 = AAA와 Ques_P_ID = (9)는 다음과 같이 쿼리를 실행하면 수행 할 그래서 변수에 ques_p_id를 만들고 싶다면 ques_p_id = 1 ~ 9이고 내 보고서 쿼리에 1 ~ 9를 사용하면 임시 테이블을 읽을 수 있습니다. 그래서 내 쿼리에이 변수를 선언하는 데 도움이 필요합니다.
임시 테이블에서 ques_p_id를 식별해야하는 경우이 권한이 필요합니까? 는 등 ..... 언제 ques_d_id = 520 THEN (520) END로 변경됩니다 P_id = 9, 경우
Declare @P int
Set @P = select (ques_p_ID) from temp_table_excel
select * From generate_AAA_report(@P);
또한이 스크립트
max(CASE WHEN ques_d_id = 320 THEN 320 END),
max(CASE WHEN ques_d_id = 321 THEN 321 END)
ques_d_id는 p_id으로 번호를 변경합니다. .....
ques_p_id ques_m_id ques_d_id
8 1 320
8 1 321
8 1 322
8 1 323
8 2 324
9 1 445
9 1 446
9 1 447
9 2 448
9 2 449
9 2 450
감사합니다 다음
도와 주셔서 감사합니다. 도움이됩니다. – Leo
안녕하세요, 귀하의 추가 문제로 새로운 질문을 게시하는 것을 보지 못했습니다. 글을 올리면 다시 살펴볼 것입니다. 기본적으로 다른 데이터를 매개 변수로 만들 수 있으며, 아마도 generate_AAA_report (8, [320, 321]) 또는'(9, [520]) '와 같은 값의 배열 일 수 있습니다.그러나 그것은 위의 솔루션 코드를 깨뜨릴 것이므로 새로운 질문을하는 것이 다른 사용자로부터 더 많은 관심을 끌 수 있도록하는 것이 가장 좋습니다. – Patrick