Share via


2단원: 날짜별로 필터링하는 매개 변수 추가

새 설치: 2006년 7월 17일

보고서 쿼리에 시작 및 종료 날짜의 매개 변수를 포함하여 데이터 원본에서 검색한 데이터를 제한하는 날짜 범위를 지정할 수 있습니다. 추가 매개 변수를 만들어 데이터 원본에서 검색한 데이터를 필터링할 수 있습니다.

이 단원에서는 쿼리 매개 변수 @StartDate@EndDate를 추가합니다. 대/소문자 구분 보고서 매개 변수 StartDateEndDate(쿼리 매개 변수 표시 @ 없음)가 자동으로 생성될 것입니다. 데이터 공급자마다 사용하는 쿼리 매개 변수 표시가 다릅니다. 예를 들어 Oracle 데이터 공급자는 at(@) 기호가 아닌 콜론(:)을 사용합니다.

매개 변수의 데이터 형식을 DateTime으로 설정하면 도구 모음에 매개 변수 입력란과 함께 달력 컨트롤이 표시됩니다. 보고서가 자동으로 실행되도록 매개 변수에 대한 기본값을 설정합니다. 마지막으로 쿼리 매개 변수에 바인딩되지 않은 보고서 매개 변수 DayofWeek를 만든 다음 이를 사용하여 데이터 원본에서 검색한 데이터를 필터링합니다.

쿼리에 날짜 매개 변수를 추가하려면

  1. 데이터 뷰에서 AdventureWorks 데이터 집합을 선택합니다.

  2. 기존 쿼리를 다음 쿼리로 바꿉니다.

    SELECT S.OrderDate, S.SalesOrderNumber, S.TotalDue, C.FirstName, 
        C.LastName
    FROM  HumanResources.Employee E INNER JOIN
          Person.Contact C ON E.ContactID = C.ContactID INNER JOIN
          Sales.SalesOrderHeader S ON E.EmployeeID = S.SalesPersonID
    WHERE (S.OrderDate BETWEEN (@StartDate) AND (@EndDate))
    -- Accurate Enddate would be '20020228 23:59:59.997'
    

    [!참고] SQL Server는 DATETIME 데이터를 1/300초까지의 정확도로 저장합니다. 자세한 내용은 날짜 및 시간(Transact-SQL)을 참조하십시오. DateTime 변수를 사용하여 기대했던 필터링 결과를 받지 못한 경우 쿼리 매개 변수에서 더 정확한 시간을 사용해야 할 수도 있습니다.

    이 자습서에서는 대략적인 날짜/시간 값을 사용합니다.

  3. 도구 모음에서 실행(!)을 클릭합니다. 쿼리 매개 변수 정의 대화 상자가 열립니다.

  4. 매개 변수 값 열에 @StartDate에 대한 값을 입력합니다. 예를 들어 20010101을 입력합니다.

  5. 매개 변수 값 열에 @EndDate에 대한 값을 입력합니다. 예를 들어 20030101을 입력합니다.

  6. 확인을 클릭합니다. 보고서 매개 변수 StartDateEndDate가 자동으로 생성되고 기본적으로 데이터 형식은 String입니다. 다음 세 단계에서는 이러한 매개 변수를 DateTime 데이터 형식으로 설정합니다.

  7. 보고서 메뉴에서 보고서 매개 변수를 클릭합니다. 보고서 매개 변수 대화 상자가 열립니다.

  8. 매개 변수 목록 상자에서 StartDate가 선택되어 있는지 확인합니다. 데이터 형식 드롭다운 목록에서 날짜/시간을 선택합니다.

  9. 매개 변수 목록 상자에서 EndDate를 선택합니다. 데이터 형식 드롭다운 목록에서 날짜/시간을 선택합니다.

  10. 확인을 클릭합니다.

  11. 미리 보기를 클릭합니다. StartDateEndDate 매개 변수 각각이 달력 컨트롤과 함께 도구 모음에 나타납니다. 매개 변수가 DateTime 데이터 형식인데 사용 가능한 값 목록을 정의하지 않은 경우 달력 컨트롤이 자동으로 나타납니다. 사용 가능한 값 목록을 정의하면 달력 컨트롤 대신 값 드롭다운 목록이 생성됩니다.

    이 자습서에서는 달력 컨트롤을 사용하는 대신 데이터에 대한 값을 입력합니다.

  12. StartDate 매개 변수 입력란에 날짜 2001-01-01을 입력합니다.

  13. EndDate 매개 변수 입력란에 날짜 2003-01-01을 입력합니다.

  14. 보고서 보기를 클릭합니다. 보고서는 보고서 매개 변수 값 내에 있는 데이터 레코드만 표시합니다.

보고서에 대한 쿼리 매개 변수를 만든 후에 해당 매개 변수에 대한 기본값을 추가할 수 있습니다. 기본 매개 변수를 사용하면 보고서가 자동으로 실행됩니다. 그렇지 않은 경우 사용자가 실행할 보고서에 대한 매개 변수 값을 입력해야 합니다.

날짜 매개 변수에 대한 기본값을 설정하려면

  1. 레이아웃 뷰에서 보고서 메뉴의 보고서 매개 변수를 클릭합니다. 보고서 매개 변수 대화 상자가 열립니다.

  2. 매개 변수 목록 상자에서 StartDate가 선택되어 있는지 확인합니다.

  3. 기본값 섹션에서 쿼리 사용 안 함을 선택하고 2001-01-01을 입력합니다. Tab 키를 눌러 입력란을 끝냅니다.

  4. 매개 변수 목록 상자에서 EndDate를 선택합니다.

  5. 기본값 섹션에서 쿼리 사용 안 함을 선택하고 2003-01-01을 입력합니다. Tab 키를 눌러 입력란을 끝냅니다.

  6. 확인을 클릭합니다.

  7. 미리 보기를 클릭합니다. 모든 매개 변수에 대해 기본값이 정의되어 있으므로 보고서가 즉시 실행됩니다.

    보고서 사용자가 보고서를 실행하는 경우 쿼리 매개 변수 범위 내에 있는 매개 변수 값을 사용하여 기본값을 설정할 수 있습니다. 예를 들어 데이터 렌더링 범위를 한 달로 제한하는 보고서 매개 변수 값을 제공할 수 있습니다.

쿼리에 새 필드를 추가하여 필터링에 사용하려면

  1. 데이터 뷰에서 AdventureWorks 데이터 집합을 선택합니다.

  2. 쿼리에서 SELECT 문에 DATENAME(weekday, S.OrderDate) as Weekday 명령을 추가하여 판매가 이루워진 요일에 대해 계산 열을 추가로 정의합니다.

    기존 쿼리를 다음 텍스트로 바꿉니다.

    SELECT S.OrderDate, DATENAME(weekday, S.OrderDate) as Weekday,
          S.SalesOrderNumber, S.TotalDue, C.FirstName, C.LastName
    FROM  HumanResources.Employee E INNER JOIN
          Person.Contact C ON E.ContactID = C.ContactID INNER JOIN
          Sales.SalesOrderHeader S ON E.EmployeeID = S.SalesPersonID
    WHERE (S.OrderDate BETWEEN (@StartDate) AND (@EndDate))
    
  3. 실행(!)을 클릭합니다. Weekday라는 새 열 및 요일의 이름이 표시되어야 합니다.

  4. 데이터 집합 창에서 Weekday가 필드인지 확인합니다.

    [!참고] 데이터 집합 창이 표시되지 않으면 보기 메뉴에서 데이터 집합을 선택합니다.

    이제 추가 데이터 집합 필드인 Weekday가 추가되었습니다. 수동으로 보고서 매개 변수를 만들어서 이 필드에 바인딩하는 경우 사용자가 요일별로 보고서 데이터를 필터링할 수 있습니다.

새 보고서 매개 변수를 추가하려면

  1. 레이아웃 탭을 클릭합니다.

  2. 보고서 메뉴에서 보고서 매개 변수를 선택합니다. 보고서 매개 변수 대화 상자가 열립니다.

  3. 추가를 클릭합니다. 새 매개 변수인 Report_Parameter_2가 기본값과 함께 나타납니다.

  4. 속성 섹션의 이름 입력란에서 Report_Parameter_2DayoftheWeek로 바꿉니다. 데이터 형식이 String인지 확인합니다.

  5. 프롬프트에서 **Filter on which day of the week:**를 입력합니다.

  6. 빈 값 허용 옵션의 선택을 취소합니다.

  7. 사용 가능한 값 섹션에서 쿼리 사용 안 함을 클릭합니다. 항목을 비워 둡니다.

  8. 기본값 섹션에서 쿼리 사용 안 함을 클릭합니다. 입력란에 Sunday를 입력합니다.

  9. 확인을 클릭합니다.

매개 변수 식을 사용하여 테이블 필터를 설정하려면

  1. 레이아웃 뷰에서 테이블을 선택합니다. 회색 윤곽선이 있는 테이블이 나타납니다.

  2. 테이블 윤곽선을 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다. 테이블 속성 대화 상자가 열립니다.

  3. 필터 탭을 클릭합니다.

  4. 열의 드롭다운 목록에서 =Fields!Weekday.Value를 선택합니다.

  5. 연산자가 등호(=)인지 확인합니다.

  6. 입력란을 클릭하고 드롭다운 목록에서 <>을 선택합니다. 식 편집 대화 상자가 열립니다.

  7. 전역 변수 창에서 매개 변수를 클릭합니다. 매개 변수의 현재 목록이 반대쪽 창에 나타납니다.

  8. DayoftheWeek를 두 번 클릭합니다. 매개 변수 식이 식 입력란에 추가됩니다. 이제 식 =Parameters!DayoftheWeek.Value가 식 입력란에 나타납니다.

  9. 확인을 클릭합니다.

  10. 확인을 클릭합니다.

    이제 Weekday 필드의 값을 DayoftheWeek에 대한 매개 변수 값과 비교할 수 있도록 테이블에 대한 필터가 설정됩니다. 예를 들어 보고서 도구 모음에 DayoftheWeek에 대해 Sunday 값을 입력하는 경우 보고서 처리기는 Weekday 필드에 대한 값이 Sunday인 테이블에서 해당 열만 처리합니다.

  11. 미리 보기를 클릭합니다. 모든 매개 변수에 기본값이 있으므로 보고서가 자동으로 실행됩니다. StartDateEndDate에서 정의한 날짜 범위 내에 있고 Sunday에 해당하는 값만 테이블에 표시됩니다.

  12. 다음 절차(옵션)에서는 테이블 머리글에 서식을 추가합니다.

(옵션) 테이블 머리글 행에 대해 배경색 및 글꼴 색을 설정하려면

  1. 레이아웃 탭을 클릭합니다.

  2. 테이블을 클릭합니다. 테이블 핸들이 표시됩니다.

  3. 테이블 머리글 행을 클릭합니다. 레이아웃 도구 모음에서 배경색 단추를 클릭합니다. 색 선택 대화 상자가 열립니다.

  4. 탭에서 DarkRed를 선택합니다.

  5. 확인을 클릭합니다.

    다음으로는 글꼴 색을 선택합니다.

  6. 레이아웃 도구 모음에서 전경색 단추를 클릭합니다. 색 선택 대화 상자가 열립니다.

  7. 탭에서 White를 선택합니다.

  8. 확인을 클릭합니다.

  9. 미리 보기를 클릭합니다. 테이블 머리글 행에 대해 선택한 색을 사용하여 테이블이 렌더링됩니다.

다음 단계

쿼리 매개 변수 및 보고서 매개 변수를 정의하고 매개 변수에 대한 기본값을 설정하며 보고서 매개 변수를 계산 필드에 성공적으로 바인딩했습니다. 다음 단원에서는 매개 변수에 대해 사용 가능한 값 또는 유효한 값 목록을 만드는 방법을 배웁니다. 3단원: 사용 가능한 값 목록을 사용하여 단일 값 매개 변수 추가를 참조하십시오.

참고 항목

작업

1단원: 매개 변수 자습서로 보고서 서버 프로젝트 만들기

관련 자료

ISO 8601 형식

도움말 및 정보

SQL Server 2005 지원 받기