AccountNum, InvoiceAcc 및 Blocked의 세 행을 가진 테이블이 있습니다. 대부분의 행에는 내 표에 InvoiceAcc가 있지만 전부는 아닙니다. AccountNum은 고유 한 식별자이며 여러 AccountNum이 동일한 InvoiceAcc를 가질 수 있습니다. Blocked는 0, 1 및 2의 int 값입니다.SQL - Subselect 사용
InvoiceAcc는 AccountNum을 기반으로하므로 Child Office가 진행되는 부모 사무실로 간주됩니다. 예를 들어
, 그래서 같은 부모 사무실 :
AccountNum - 1, InvoiceAcc - null, Blocked - 2
그래서 같은 자식 사무실이 있습니다
AccountNum - 1-1, InvoiceAcc - 1, Blocked - 0
AccountNum - 1-2, InvoiceAcc - 1, Blocked - 1
내가 할 싶습니다 어떤 행과 그 이후의 InvoiceAcc을 확인하다 AccountNum은 값을 차단했습니다. 위의 예에서 위와 같이 쿼리를 수행 한 경우 :
SELECT BLOCKED FROM CustTable WHERE AccountNum = '1-1'
차단 된 값이므로 0이 반환됩니다. 내가하고 싶은 것은 수익이 2이고 반환 값이 더 높고 상위 계정이 있기 때문입니다. 또한 부모 acc에 1의 차단 값이 있고 조회중인 하위 계정의 차단 값이 2 인 경우 2를 반환해야합니다. 여기서 subselect가 필요하다고 가정합니다. 중 자체 또는 부모 계정에 부모 계정 조금 지저분한의
이것은 또한 accno = 1에 대해 정적입니다. – SMK
Nop, 아닙니다. 매개 변수로 바꾸거나 위치를 모두 제거하면 각 고객의 최고 블록 값이 표시됩니다. – CallumVass