일련의 거래 및 재고 확인 작업을하고 있습니다. 제 목표는 거래 전 최대 5 일 전에 회사가 해당 품목에 대한 상품 발송을 받았는지 확인하기위한 깃발을 만드는 것입니다. 다음과 같이 의사의 논리는 다음과 같습니다다른 테이블을 참조하여 기간 내의 레코드를 확인하십시오.
For each transaction date:
For all inventory receipts whether inventory.item# = transaction.item#
Are there records between transaction date - 5 and transaction date?
일반적으로, 난 그냥 두 테이블을 생성하고 그들과 합류,하지만 그들은 정말 두 개의 별도의 데이터 structures.My 초기 시도 있습니다
PROC SQL;
Create Table TABLE 1 AS
SELECT TRANSACTION.DATE,
SUM(CASE WHEN INVENTORY.DATE BETWEEN (TRANSACTION.DATE - 5 AND TRANSACTION.DATE) AND INVENTORY.ITEM = TRANSACTION.ITEM;
하지만 어떻게 것 테이블 참조? 왼쪽/오른쪽/내부 조인이 여기에 적합한 지 잘 모르겠습니다. 나는 테이블에 합류하려고하지 않는다.
편집 : 다음과 같이 구성되어 내 데이터는 다음과 같습니다
TRANSACTION TABLE
ITEM DATE
0012 12/2
0231 12/3
0421 12/3
INVENTORY TABLE
0012 11/30
0231 12/4
0421 12/1
ITEM 0012, 우리는 재고 테이블에 보일 것이다 그 때문에, 해당 항목에 대한 11/30에 접수가 있다고 볼 항목 0231에 대해서는 거래일로부터 5 일 이내에 인벤토리 레시피가 없다는 것을 알 수 있습니다. 따라서 플래그 = 0입니다.
포스트 샘플 입력 데이터와 출력 데이터 예상 :
가정 테이블 이름은 T1 및 T2이다. 출력으로 원하는 것이 무엇인지 명확하지 않으며 SAS에서 하위 쿼리없이 아주 쉽게 자체 조인을 수행 할 수 있습니다. – Reeza
고려해야 할 사항 - 데이터가 어떻게 구성되는지, 특히 날짜 필드와 하루에 여러 레코드가있는 경우. – Reeza
@Reeza 데이터 구조가 추가되었습니다. –