2017-12-04 7 views
0

저는 아직 완전히 익숙하지 않지만 다음 단계를 수행 할 준비가되어 있습니다. 가능한 한 여러 쿼리를 동시에 실행하려고합니다. 다른 질문을 읽으면서 스토어드 프로 시저를 만드는 것이 가장 좋은 방법 인 것처럼 보입니다.SQL Server Management Studio에서 저장 프로 시저를 만들었습니다.

현재 진행중인 작업으로 36 개의 보고서가 생성됩니다. 이 경우 한 번에 36 개의 모든 보고서를 만들고 결과가없는 것이 하나의 연속 된 개체가되기를 바란다. 각각은 아래 표시된 코드와 매우 유사한 쿼리를 사용합니다. 아래에 표시된 쿼리는 36에서 생성되는 첫 번째 보고서입니다. 36의 유일한 차이점은 WHERE 문에있는 값입니다. 36 개의 코드를 SQL로 복사하여 붙여 넣은 다음 그 결과를 복사하여 Excel 스프레드 시트에 붙여 넣지 못하도록하는 작업이나 메서드가 필요합니다.

제 질문은 1입니다.이 작업을 수행 할 수 있습니까? 2. 저장 프로 시저가이 작업에 가장 적합한 방법입니까?

SELECT 
    '000000' AS area, 
    [SizeClass], 
    COUNT(*) AS [Number of Worksites], 
    SUM(Employment) AS [Employment In Size Class] 
FROM 
    dbo.sizeclassreport 
WHERE 
    code LIKE '11%' OR code LIKE '21%' 
GROUP BY 
    [SizeClass] 
ORDER BY 
    [SizeClass] 
+1

저장 프로 시저가 작업에 좋습니다. – Spider

답변

2

가 와일드 카드가있는 경우와 절은 다른 열을 또한 경우 포함 WHERE 얘기하는 36 개 보고서는 또한 인수의 다른 번호를 통과하면 그것은 까다로운 가져옵니다. 나는 아마 최대와 함께 sproc를 쓸 것이다. 매개 변수의 숫자는 보고서는 세 가지의 최대에 대해 다음과 같이 전달할 수 적어도 코드 1이 모든 시간과 휴식 것으로 예상된다

CREATE PROCEDURE dbo.sp_Test 
    @code1 varchar(80), 
    @code2 varchar(80), 
    @code3 varchar(80) 
AS 
BEGIN 
    IF(@code1 is null or @code1 = '') 
    BEGIN 
     RAISERROR('bad arguments!',16,1); 
     RETURN; 
    END 
    select 
     [cols] 
    from 
     dbo.tbl 
    where 
     ([Code] like @code1) OR 
     (@code2 is NOT null AND [Code] like @code2) OR 
     (@code3 is NOT null AND [Code] like @code3) 
END 

는 선택 사항입니다. where 절이 보고서에 따라 다른 열을 포함하는 경우 위와 유사한 접근 방식으로 여러 검색을 수행하기 위해 여러 가지 sprocs를 수행하는 것이 좋습니다.

+0

도와 주셔서 감사합니다. 각 문은 Where 문까지 정확히 동일합니다. 변화하는 요소와 같은 요소에있는 것만이 존재합니다. –