저는 약간의 기본적인 SQL 질문과 도움이 필요하다고 생각합니다. 나는 MSSQL을 사용하고있다.조건부 SQL 조인
나는 두 개의 테이블이 있습니다
Table A Table B ---------------------------------------------- A.ID |A.Date| B.ID|B.Date|B.Number
A.ID 고유이다; 중복 된 행이 없습니다. B.ID는 고유하지 않으므로 해당 열의 테이블을 조인하면 여러 행이 반환 될 수 있습니다. 적절한 기록을 잡으려면 두 열 모두에 참여하는 것이 필요하지만 원치 않는 결과도 있습니다. 예 :
Table A | Table B ---------------------------------------------- 1 |01-01-2014 | 1 |01-01-2014|25 2 |01-30-2014 | 1 |04-30-2013|40 3 |03-24-2014 | 1 |10-12-2018|12 4 |05-28-2014 | 2 |11-17-2013|55
원하는 결과는 두 열을 모두 조인하고 단일 행을 반환하는 것입니다. 내가 실행중인 문제는 샘플 데이터를 사용하여 두 컬럼이 동등한 경우 첫 번째 행만 반환된다는 것입니다. ID 열을 동일하게 설정하고 < =을 사용하면 원하지 않는 ID1에 대해 여러 행이 반환됩니다. 일부 필드에는 두 개의 날짜 필드가 동일해질 때까지 레코드를 반환하지 않아야하는 미래의 날짜가 있기 때문에 최대 날짜를 사용할 수 없습니다. 샘플 데이터에서 원하는 결과는 숫자 25와 55를 반환합니다. 따라서 본질적으로 동일한 ID 열과 같은 날짜 필드에 조인해야하지만 표 B에 동일한 날짜가없는 경우 가장 최근 날짜의 수를 반환합니다. 미래의 날짜가 아니라고 가정합니다.
희망적으로는 의미가 있습니다. 미리 감사드립니다.
그래서 결과는 무엇입니까? 당신에게 맞는 대답을 얻었습니까? – ngreen
나는 거대한 지연에 대해 사과한다. .. 잠깐 길가에 떨어졌다. 결과를 분할하고 원하는 것을 잡기 위해서 ROW OVER와 상관 관계가있는 부질의를 사용했다. – user2820853