두 테이블은 상당히 크고 내 select 문에는 내가 얻는 것보다 더 많은 값이 있지만 내 질문에 답하기 위해 이 데이터와 쿼리를 단순화할 수 있다고 생각합니다.
이것은 제가 선택한 진술입니다:
으아악그래서 테이블이 두 개네요. 송장 테이블 및 InvoiceItem 테이블. 각 테이블의 InvoiceNum 열로 결합되어 InvoiceNum 및 Layer 열을 표시합니다
이 쿼리의 결과는 다음과 같습니다.
으아악내 InvoiceItem 테이블에는 1 InvoiceNum에 할당할 수 있는 여러 행이 있으므로 결과에 InvoiceNum이 중복되어 원하지 않습니다.
이것은 송장 테이블에서 1개의 송장 번호만 나열하려는 결과입니다. 여기서 첫 번째 사례는 InvoiceItem 테이블의 레이어 열에서 0이 아닌 값이고 0이 아닌 값이 없는 경우 , 첫 번째 A 0을 나열하십시오.
다음과 같이 시도해 보세요.
으아악이 작업을 수행하는 방법을 잘 모르겠습니다. 아니면 서로 다른 두 테이블에 있다는 점을 고려하면 가능할까요?
가정/이해:
sybase
标记,但问题并没有区分 4x 不同的 Sybase RDBMS 产品(ASE
、SQLAnywhere
、IQ
、Advantage
), 따라서 일반적인 SQL 구문을 사용하겠습니다(예: 4x 제품은 서로 다른 SQL 방언을 가지고 있으며 ASE는 CTE를 지원하지 않습니다)left (outer) join
的使用,因为提供的输出似乎没有表明InvoiceItem
답변에 "누락된" 줄이 있다는 것을 이해하지 못합니다.Layer
和InvoiceItemNum
列属于哪个表,因此我假设它们属于InvoiceItem
문 세트를 추측해 보세요.
OP의 현재 출력을 생성하는 쿼리:insert
으아악으아악
OP에서 원하는 출력을 생성하기 위한 몇 가지 다른(복잡하고 지저분한) 아이디어:으아악
두 가지 모두 생성됩니다:으아악
참고:
나에게 출력이 나타나지 않고 OP가 필요성을 보여주었기 때문에 출력이 무엇인지 잘 모르겠습니다.-
(Sybase)SAP에서 테스트된 모든 쿼리 -
left (外部)join
ASE 16.0
이 질문은 조금 까다롭습니다.
Postgres에서 사용해 보세요:
으아악데모
MySQL 8:
이것을 시도해 보세요:
으아악