관련 테이블에 선택적 매개 변수가있는 SQL 쿼리

Jiveman

다음과 유사한 스키마가 있습니다.

Person
----------------
Id (PK)
Name

EventRegistration
----------------
EventId (PK, FK)
PersonId (PK, FK)
DateRegistered

-- EDIT: Note that a single person can registered for multiple events.

제공된 날짜 범위 내에서 발생한 이벤트에 대해 등록한 모든 사람의 이름을 검색하는 쿼리를 작성해야합니다 (예 : 및에 속해야 DateRegistered). 트릭은 입력 매개 변수가 선택 사항이라는 것입니다. 따라서 시작 날짜 만, 종료 날짜 만 또는 둘 다 정의하지 않을 수 있습니다. 이들은 각각 "이 범위 내의 모든 것", "이 날짜 이후의 모든 것", "이 날짜 이전의 모든 것"및 "이벤트 등록에 관계없이 모든 사람"으로 해석됩니다.DateRangeStartDateRangeEnd

그래서 나는 작동하는 것을 생각해 냈지만 이것을 개선하는 데 도움을 얻을 수 있는지 궁금합니다.

-- Assume parameters @DateRangeStart and @DateRangeEnd (both date) are provided by user input

SELECT p.Name
FROM Person p
WHERE 
    (@DateRangeStart IS NULL OR EXISTS (
        SELECT TOP 1 PersonId
        FROM EventRegistration
        WHERE PersonId = p.Id
            AND DateRegistered >= @DateRangeStart
            AND (@DateRangeEnd IS NULL OR DateRegistered <= @DateRangeEnd)
        )
    ) AND
    (@DateRangeEnd IS NULL OR EXISTS (
        SELECT TOP 1 PersonId
        FROM EventRegistration
        WHERE PersonId = p.Id
            AND (@DateRangeStart IS NULL OR DateRegistered >= @DateRangeStart)
            AND DateRegistered <= @DateRangeEnd
        )
    )
고든 벨

다음과 같이 작동합니다.

SELECT DISTINCT p.Name
FROM Person p
LEFT JOIN EventRegistration e
ON p.Id = e.PersonId
WHERE (@DateRangeStart IS NULL OR DateRegistered >= @DateRangeStart)
AND (@DateRangeEnd IS NULL OR DateRegistered <= @DateRangeEnd)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

조건이 관련 테이블에있는 테이블에서 값을 선택하는 SQL 쿼리

분류에서Dev

PHP SQL 쿼리에서 선택적 검색 매개 변수 처리

분류에서Dev

선택적 검색 매개 변수에 대한 SQL 쿼리 구성

분류에서Dev

C #의 매개 변수가있는 동적 SQL 쿼리

분류에서Dev

다른 테이블에서 관련 데이터를 가져 오는 SQL 쿼리

분류에서Dev

VBA를 사용하여 Excel의 SQL 테이블에 매개 변수가있는 쿼리 사용

분류에서Dev

VBA를 사용하여 Excel의 SQL 테이블에 매개 변수가있는 쿼리 사용

분류에서Dev

테이블 반환 함수에서 매개 변수로 선택 쿼리 사용

분류에서Dev

동적 SQL : 관계가있는 테이블에 대한 삽입 쿼리 생성

분류에서Dev

SQL 쿼리의 선택적 테이블

분류에서Dev

Null이있는 WHERE 절이있는 SQL Server 매개 변수가있는 쿼리

분류에서Dev

Null이있는 WHERE 절이있는 SQL Server 매개 변수가있는 쿼리

분류에서Dev

2 개의 테이블에서 SQL 쿼리. 선택 및 검색

분류에서Dev

PyDrive에서 InsertPermission ()을 사용하는 선택적 쿼리 매개 변수

분류에서Dev

두 개의 MySQL 테이블에서 선택할 PHP 변수가있는 쿼리 구문

분류에서Dev

Apache Derby SQL-두 테이블 간의 관련 행 수 선택

분류에서Dev

MS SQL-동적 매개 변수 수가있는 매개 변수화 된 쿼리

분류에서Dev

하나의 테이블에서 모든 행을 선택하고 테이블 2에서 선택적 행을 선택하는 SQL 쿼리

분류에서Dev

SQL 쿼리 : 관련 테이블의 모든 레코드가 특정 속성 값을 갖는 레코드를 선택하는 방법

분류에서Dev

SQL : 관련 테이블에 지정된 필드 값이없는 테이블에서 모두 선택

분류에서Dev

NULL을 확인할 때 SQL 쿼리의 선택적 매개 변수가 매우 느림

분류에서Dev

매개 변수가있는 쿼리에 제공되지 않은 매개 변수가 필요합니다 .C # SQL

분류에서Dev

쿼리 별 LINQ 그룹 도움말 : 키가있는 다른 관련 테이블 선택

분류에서Dev

Compojure를 사용하는 기본값이있는 선택적 쿼리 매개 변수 (Swagger 없음)?

분류에서Dev

SSRS 2008 쿼리 : 선택한 매개 변수의 테이블 이름

분류에서Dev

SQL 개수 (선택) 쿼리

분류에서Dev

두 테이블에서 선택하는 SQL 쿼리.

분류에서Dev

계산과 관련된 매개 변수가있는 쿼리가 SSRS에서 작동하지 않는 이유는 무엇입니까?

분류에서Dev

동적 테이블 이름에 대한 Python MySQL 매개 변수 쿼리

Related 관련 기사

  1. 1

    조건이 관련 테이블에있는 테이블에서 값을 선택하는 SQL 쿼리

  2. 2

    PHP SQL 쿼리에서 선택적 검색 매개 변수 처리

  3. 3

    선택적 검색 매개 변수에 대한 SQL 쿼리 구성

  4. 4

    C #의 매개 변수가있는 동적 SQL 쿼리

  5. 5

    다른 테이블에서 관련 데이터를 가져 오는 SQL 쿼리

  6. 6

    VBA를 사용하여 Excel의 SQL 테이블에 매개 변수가있는 쿼리 사용

  7. 7

    VBA를 사용하여 Excel의 SQL 테이블에 매개 변수가있는 쿼리 사용

  8. 8

    테이블 반환 함수에서 매개 변수로 선택 쿼리 사용

  9. 9

    동적 SQL : 관계가있는 테이블에 대한 삽입 쿼리 생성

  10. 10

    SQL 쿼리의 선택적 테이블

  11. 11

    Null이있는 WHERE 절이있는 SQL Server 매개 변수가있는 쿼리

  12. 12

    Null이있는 WHERE 절이있는 SQL Server 매개 변수가있는 쿼리

  13. 13

    2 개의 테이블에서 SQL 쿼리. 선택 및 검색

  14. 14

    PyDrive에서 InsertPermission ()을 사용하는 선택적 쿼리 매개 변수

  15. 15

    두 개의 MySQL 테이블에서 선택할 PHP 변수가있는 쿼리 구문

  16. 16

    Apache Derby SQL-두 테이블 간의 관련 행 수 선택

  17. 17

    MS SQL-동적 매개 변수 수가있는 매개 변수화 된 쿼리

  18. 18

    하나의 테이블에서 모든 행을 선택하고 테이블 2에서 선택적 행을 선택하는 SQL 쿼리

  19. 19

    SQL 쿼리 : 관련 테이블의 모든 레코드가 특정 속성 값을 갖는 레코드를 선택하는 방법

  20. 20

    SQL : 관련 테이블에 지정된 필드 값이없는 테이블에서 모두 선택

  21. 21

    NULL을 확인할 때 SQL 쿼리의 선택적 매개 변수가 매우 느림

  22. 22

    매개 변수가있는 쿼리에 제공되지 않은 매개 변수가 필요합니다 .C # SQL

  23. 23

    쿼리 별 LINQ 그룹 도움말 : 키가있는 다른 관련 테이블 선택

  24. 24

    Compojure를 사용하는 기본값이있는 선택적 쿼리 매개 변수 (Swagger 없음)?

  25. 25

    SSRS 2008 쿼리 : 선택한 매개 변수의 테이블 이름

  26. 26

    SQL 개수 (선택) 쿼리

  27. 27

    두 테이블에서 선택하는 SQL 쿼리.

  28. 28

    계산과 관련된 매개 변수가있는 쿼리가 SSRS에서 작동하지 않는 이유는 무엇입니까?

  29. 29

    동적 테이블 이름에 대한 Python MySQL 매개 변수 쿼리

뜨겁다태그

보관