조인 된 테이블의 각 레코드에 대한 날짜 기반 상위 1 개 레코드

bpw

변수 테이블 "@USERS"와 유효 날짜를 기반으로하는 USERCLASS의 DB 테이블이 있습니다. 내가해야 할 일은 결정된 날짜에 USERCLASS를 채우는 것입니다. 예:

@ 사용자

USERID | OTHER
--------------
A1     |  1
B1     |  2
C1     |  3
D1     |  4

DBCLASSTABLE

USERID | CLASS | EFFECTIVEDATE
------------------------------
A1     |  ZZ   | 2015-02-01
A1     |  XX   | 2014-02-01
B1     |  TT   | 2015-02-01
B1     |  RR   | 2014-02-01
etc..

2015-01-01의 날짜를 기준으로합니다. 작동 할 클래스는 두 가지 모두에 대해 2014 유효 클래스가됩니다.

내가 가진 것은 :

SELECT
    USERID,
    OTHER,
    'CLASS' = (SELECT TOP 1
                   A.CLASS
               FROM
                   DBCLASSTABLE A
                   JOIN @USERS B on A.USERID = B.USERID
               WHERE A.USERID = B.USERID AND A.EFFECTIVEDATE < 2015-01-01
               ORDER BY A.EFFECTIVEDATE DESC
              )
FROM
    @USERID

그러나 모든 레코드에 대해 DBCLASSTABLE의 TOP을 반환하므로 분명히 잘못된 작업을 수행했습니다.

USERID | OTHER | CLASS
----------------------
A1     |  1    |  ZZ
B1     |  2    |  ZZ
C1     |  3    |  ZZ
D1     |  4    |  ZZ

이 샘플 데이터를 사용하면

USERID | OTHER | CLASS
-----------------------
A1     | 1     | XX
B1     | 2     | RR

어떤 도움을 주시면 감사하겠습니다.

고든 리노 프

아마도 상관 하위 쿼리를 원할 것입니다. 귀하의 질문에 테이블이 언급되어 @USERS있지만 언급 된 것은 없습니다 @USERIDS. 나는 그들이 동일하다고 생각할 것입니다.

SELECT USERID, OTHER,
       (SELECT TOP 1 c.CLASS
        FROM DBCLASSTABLE c
        WHERE c.USERID = u.USERID AND c.EFFECTIVEDATE < '2015-01-01'
        ORDER BY A.EFFECTIVEDATE DESC
       ) as Class
FROM @USERS u;

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

그룹의 각 레코드에 대해 최근 n 개의 날짜가 기록 된 레코드 선택

분류에서Dev

OrderDelivery의 합계로 날짜 기반에 대한 레코드를 얻기위한 SQL 조인 쿼리

분류에서Dev

조인 된 테이블의 레코드에 대한 레코드가 둘 이상인지 확인

분류에서Dev

각 레코드에 대한 범위 od 날짜가있는 테이블로보기

분류에서Dev

조인 된 테이블 날짜의 30 일 기간 내에 레코드를 반환하는 SQL Where 절

분류에서Dev

MySQL : 조인 된 대형 테이블에서 최소 1 개의 레코드 존재 감지

분류에서Dev

날짜별로 고유 한 상위 1 개 레코드 선택

분류에서Dev

2 개 이상의 값을 반환 한 하위 쿼리-특정 날짜의 값으로 날짜 범위에 대한 레코드 업데이트

분류에서Dev

원본의 각 레코드에서 조인 된 테이블의 행에 대한 SQL 인덱싱

분류에서Dev

동일한 테이블에서 3 개 이상의 레코드로 각 ID를 반복합니다.

분류에서Dev

자식 테이블에서 상위 n 개 레코드 조인

분류에서Dev

레일의 자체 조인이 예상되는 각 하위 행에 대한 상위 레코드를 반환합니다.

분류에서Dev

날짜 범위 사이에 누락 된 레코드 찾기

분류에서Dev

desc의 devicetimestamp 순서에 따라 각 테이블에서 상위 1 개 레코드를 얻는 방법

분류에서Dev

일대 다 관계의 "상위"테이블에서 각 레코드에 대해 누락 된 "하위"레코드를 찾는 SQL

분류에서Dev

두 개의 상속 된 postgres 테이블에서 동일한 레코드

분류에서Dev

스키마의 모든 테이블에 대해 "통계"를 만드는 방법은 무엇입니까? (통계는 각 테이블 당 1 개의 반환 된 레코드를 의미 함)

분류에서Dev

1 개 열을 기준으로 각 개인에 대한 고유 한 레코드를 선택합니다.

분류에서Dev

각 날짜의 상위 1 개 날짜

분류에서Dev

두 개의 조인 된 테이블에서 관련 레코드 수 가져 오기

분류에서Dev

각 값에 대해 1 개의 레코드를 얻는 방법

분류에서Dev

테이블의 각 레코드에 대한 평균을 반환합니다.

분류에서Dev

DynamoDB 테이블을 쿼리하여 생성 된 날짜별로 상위 100 개의 레코드 순서를 가져옵니다.

분류에서Dev

각 엔터티에 대해 상위 N 개 레코드 선택

분류에서Dev

"시작"및 "중지"날짜를 기록하는 테이블에서 주어진 날짜의 활성 레코드를 찾기위한 쿼리

분류에서Dev

SQL Server에서 열별 그룹을 사용하여 where 절을 기반으로 각 그룹의 상위 1 개 레코드를 얻는 방법

분류에서Dev

Bigquery (표준 SQL)로 그룹화 된 각 결과 그룹의 상위 n 개 레코드 가져 오기

분류에서Dev

다른 테이블에서 각 레코드의 총 개수 가져 오기

분류에서Dev

날짜 범위 사이의 테이블에서 레코드 수백만 개 삭제

Related 관련 기사

  1. 1

    그룹의 각 레코드에 대해 최근 n 개의 날짜가 기록 된 레코드 선택

  2. 2

    OrderDelivery의 합계로 날짜 기반에 대한 레코드를 얻기위한 SQL 조인 쿼리

  3. 3

    조인 된 테이블의 레코드에 대한 레코드가 둘 이상인지 확인

  4. 4

    각 레코드에 대한 범위 od 날짜가있는 테이블로보기

  5. 5

    조인 된 테이블 날짜의 30 일 기간 내에 레코드를 반환하는 SQL Where 절

  6. 6

    MySQL : 조인 된 대형 테이블에서 최소 1 개의 레코드 존재 감지

  7. 7

    날짜별로 고유 한 상위 1 개 레코드 선택

  8. 8

    2 개 이상의 값을 반환 한 하위 쿼리-특정 날짜의 값으로 날짜 범위에 대한 레코드 업데이트

  9. 9

    원본의 각 레코드에서 조인 된 테이블의 행에 대한 SQL 인덱싱

  10. 10

    동일한 테이블에서 3 개 이상의 레코드로 각 ID를 반복합니다.

  11. 11

    자식 테이블에서 상위 n 개 레코드 조인

  12. 12

    레일의 자체 조인이 예상되는 각 하위 행에 대한 상위 레코드를 반환합니다.

  13. 13

    날짜 범위 사이에 누락 된 레코드 찾기

  14. 14

    desc의 devicetimestamp 순서에 따라 각 테이블에서 상위 1 개 레코드를 얻는 방법

  15. 15

    일대 다 관계의 "상위"테이블에서 각 레코드에 대해 누락 된 "하위"레코드를 찾는 SQL

  16. 16

    두 개의 상속 된 postgres 테이블에서 동일한 레코드

  17. 17

    스키마의 모든 테이블에 대해 "통계"를 만드는 방법은 무엇입니까? (통계는 각 테이블 당 1 개의 반환 된 레코드를 의미 함)

  18. 18

    1 개 열을 기준으로 각 개인에 대한 고유 한 레코드를 선택합니다.

  19. 19

    각 날짜의 상위 1 개 날짜

  20. 20

    두 개의 조인 된 테이블에서 관련 레코드 수 가져 오기

  21. 21

    각 값에 대해 1 개의 레코드를 얻는 방법

  22. 22

    테이블의 각 레코드에 대한 평균을 반환합니다.

  23. 23

    DynamoDB 테이블을 쿼리하여 생성 된 날짜별로 상위 100 개의 레코드 순서를 가져옵니다.

  24. 24

    각 엔터티에 대해 상위 N 개 레코드 선택

  25. 25

    "시작"및 "중지"날짜를 기록하는 테이블에서 주어진 날짜의 활성 레코드를 찾기위한 쿼리

  26. 26

    SQL Server에서 열별 그룹을 사용하여 where 절을 기반으로 각 그룹의 상위 1 개 레코드를 얻는 방법

  27. 27

    Bigquery (표준 SQL)로 그룹화 된 각 결과 그룹의 상위 n 개 레코드 가져 오기

  28. 28

    다른 테이블에서 각 레코드의 총 개수 가져 오기

  29. 29

    날짜 범위 사이의 테이블에서 레코드 수백만 개 삭제

뜨겁다태그

보관