불렀다 PeriodID, FROMDATE, TODATE와
...이 테이블은 특정 프로그램을위한 준비가되어 있으며 변경할 수 없습니다.
그렇다면 Transaction에서 txDate를 사용하여 기간 테이블을 검색하는 방법이 있는지 알고 싶습니다. 그러면 txDate가 특정 기간의 fromDate와 toDate 사이에있는 경우 트랜잭션을 결합한보기를 원합니다. PeriodID를 추가합니다.
불렀다 PeriodID, FROMDATE, TODATE와
...이 테이블은 특정 프로그램을위한 준비가되어 있으며 변경할 수 없습니다.
그렇다면 Transaction에서 txDate를 사용하여 기간 테이블을 검색하는 방법이 있는지 알고 싶습니다. 그러면 txDate가 특정 기간의 fromDate와 toDate 사이에있는 경우 트랜잭션을 결합한보기를 원합니다. PeriodID를 추가합니다.
샘플 데이터가 없으면 이러한 질문에 대답하기가 항상 어려울 수 있습니다. 그러나 내가 올바르게 이해했다고 가정하면 ...
between을 사용하여이 두 테이블을 결합 할 수 있습니다.
이 가입은 거래 날짜를 포함하는 기간을 반환합니다.
-- Join without a matching field.
SELECT
*
FROM
[Transaction] AS t
INNER JOIN [Period] AS p ON t.txDate BETWEEN p.fromDate AND p.toDate
;
네, 저를 정확하게 이해했습니다. 이것이 제가 원했던 것입니다. –
시험해보십시오. 궁금한 점이 있습니까?
SELECT *
FROM Transaction
WHERE EXISTS
(
SELECT 1 FROM Period WHERE txDate BETWEEN fromDate AND ToDate
)
하위 쿼리의 외부 쿼리를 참조 할 때주의하십시오. 이를 [상관 하위 쿼리] (https://en.wikipedia.org/wiki/Correlated_subquery)라고합니다. SQL Server는 외부 쿼리에서 반환 된 모든 행에 대해 한 번 하위 쿼리를 다시 평가해야하므로 이러한 유형의 쿼리는 성능을 저하시킬 수 있습니다. –
두 테이블의 샘플 데이터와 원하는 결과를 제공하십시오. – GuidoG