[SQL] 전체는 MS 액세스에 가입
SQL전체는 MS 액세스에 가입
내가 할 노력하고있어, 그래서 전체는 MS 액세스 2003에 참가하지만, 그것을 지원하지 않은에서 바로 발견했다. 내 두 개의 선택 문을 복용 시도하고 LEFT를 사용하여 하나를 조인 가입하고 같은 문하지만 RIGHT 조인과 함께 UNION을 따라서. 액세스는 명령을 가입하기에 뭔가 잘못이 있다는 말을 나에게 오류를했다. 일부 SQL을 Heres는 ...
SELECT tbl_Vendors.VendorName, tbl_Inventory.ItemNum,
tbl_Inventory.Color, tbl_Inventory.InInventory,
tbl_Inventory.OutInventory,
(tbl_Inventory.Stocks + tbl_Inventory.InInventory -
tbl_Inventory.OutInventory) AS Balance,
tbl_Inventory.Weight, tbl_Inventory.CF,
(tbl_Inventory.Weight *Balance) AS TotalWeight,
(tbl_Inventory.CF * Balance) AS TotalCF,
tbl_Inventory.NoteOrder, tbl_ItemHistory.orderDate,
tbl_ItemHistory.POHistory, tbl_ItemHistory.InorOut,
tbl_ItemHistory.Unit
FROM (tbl_Vendors INNER JOIN tbl_Inventory
ON tbl_Vendors.vid = tbl_Inventory.VendorID)
LEFT JOIN tbl_ItemHistory
ON tbl_Inventory.ItemNum = tbl_ItemHistory.ItemNum
ORDER BY tbl_Inventory.ItemNum, tbl_ItemHistory.orderDate
이 코드 형식이 아닌 경우 죄송합니다, 제가 추측 액세스 SQL은 일반 텍스트입니다. 이 중 하나는 왼쪽 조인과 함께합니다. 당신은 어떤 아이디어가 있다면, 그렇게 말하십시오. 감사!
편집 : 2 단계 조인,
SELECT tbl_Vendors.VendorName, tbl_Inventory.ItemNum, tbl_Inventory.Color,
tbl_Inventory.InInventory, tbl_Inventory.OutInventory,
(tbl_Inventory.Stocks+tbl_Inventory.InInventory-tbl_Inventory.OutInventory) AS Balance,
tbl_Inventory.Weight, tbl_Inventory.CF, (tbl_Inventory.Weight*Balance) AS TotalWeight,
(tbl_Inventory.CF*Balance) AS TotalCF, tbl_Inventory.NoteOrder, tbl_ItemHistory.orderDate,
tbl_ItemHistory.POHistory, tbl_ItemHistory.InorOut, tbl_ItemHistory.Unit
FROM (tbl_Vendors INNER JOIN tbl_Inventory ON tbl_Vendors.vid = tbl_Inventory.VendorID) LEFT JOIN
tbl_ItemHistory ON tbl_Inventory.ItemNum = tbl_ItemHistory.ItemNum;
UNION ALL
SELECT tbl_Vendors.VendorName, tbl_Inventory.ItemNum, tbl_Inventory.Color,
tbl_Inventory.InInventory, tbl_Inventory.OutInventory,
(tbl_Inventory.Stocks+tbl_Inventory.InInventory-tbl_Inventory.OutInventory) AS Balance,
tbl_Inventory.Weight, tbl_Inventory.CF, (tbl_Inventory.Weight*Balance) AS TotalWeight,
(tbl_Inventory.CF*Balance) AS TotalCF, tbl_Inventory.NoteOrder, tbl_ItemHistory.orderDate,
tbl_ItemHistory.POHistory, tbl_ItemHistory.InorOut, tbl_ItemHistory.Unit
FROM (tbl_Vendors INNER JOIN tbl_Inventory ON tbl_Vendors.vid = tbl_Inventory.VendorID) RIGHT
JOIN tbl_ItemHistory ON tbl_Inventory.ItemNum = tbl_ItemHistory.ItemNum;
오류 : 가입 표현은 지원되지 않습니다. 코드의 첫 번째 조각은 왼쪽 외부 조인을위한 좋았다. 나는이 왼쪽 조인하고 그 일을 시도했다. 그는 내 오른쪽에 가입 복용하지 ...
해결법
-
==============================
1.귀하의 궁극적 인 목표는 전체 외부 조인을 모방하는 것이지만, 첫 번째 장애물은 액세스 '데이터베이스 엔진이 왼쪽이 시도 가입에 대한 불만이다. 먼저 조인 가능한을 작성해야합니다, 그리고 당신이 제공 한 샘플에 문제가 있는지 발견 할 수 없다.
귀하의 궁극적 인 목표는 전체 외부 조인을 모방하는 것이지만, 첫 번째 장애물은 액세스 '데이터베이스 엔진이 왼쪽이 시도 가입에 대한 불만이다. 먼저 조인 가능한을 작성해야합니다, 그리고 당신이 제공 한 샘플에 문제가 있는지 발견 할 수 없다.
액세스는이 단순화 된 버전을 동의합니까?
SELECT * FROM (tbl_Vendors AS vend INNER JOIN tbl_Inventory AS inv ON vend.vid = inv.VendorID) LEFT JOIN tbl_ItemHistory AS hist ON inv.ItemNum = hist.ItemNum;
순간을 위해, 우리는 필드 목록 또는 ORDER BY에 대해 우려하지 않을 ... 그 쿼리가 오류없이 작동하고 올바른 행을 반환 단순히 여부.
이 작업을 수행하는 경우,이 권한은 반환 당신이 필요로하는 나머지 행을 가입 여부를 참조하십시오.
SELECT * FROM (tbl_Vendors AS vend INNER JOIN tbl_Inventory AS inv ON vend.vid = inv.VendorID) RIGHT JOIN tbl_ItemHistory AS hist ON inv.ItemNum = hist.ItemNum WHERE inv.ItemNum Is Null;
당신은 WHERE 절을 변경해야 할 수 있습니다; 즉, 검증되지 않은 공기 코드이었다. 그 또한 작동하지만, 하나에 2 개 개의 쿼리를 결합 :
SELECT * FROM (tbl_Vendors AS vend INNER JOIN tbl_Inventory AS inv ON vend.vid = inv.VendorID) LEFT JOIN tbl_ItemHistory AS hist ON inv.ItemNum = hist.ItemNum UNION ALL SELECT * FROM (tbl_Vendors AS vend INNER JOIN tbl_Inventory AS inv ON vend.vid = inv.VendorID) RIGHT JOIN tbl_ItemHistory AS hist ON inv.ItemNum = hist.ItemNum WHERE inv.ItemNum Is Null;
-
==============================
2.나는 두 테이블의 모든 행에 같은 값 더미 열을 만들었습니다. 그것은 즉시 수행 할 수 있습니다.
나는 두 테이블의 모든 행에 같은 값 더미 열을 만들었습니다. 그것은 즉시 수행 할 수 있습니다.
여기에 내가 사람과 활동을 한 예는 내가 모든 활동과 일치하는 모든 사람을 얻고 싶었다 :
SELECT person, activity FROM (SELECT 1 as tag, person from person) AS a INNER JOIN (SELECT 1 as tag, activity from activity) AS b ON a.tag = b.tag ORDER BY person, activity;
from https://stackoverflow.com/questions/6998423/full-join-on-ms-access by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 고유 식별자로 조회 결과의 행을 결합? (0) | 2020.07.15 |
---|---|
[SQL] TSQL : 어떻게 주어진 날짜 범위 사이의 각 달의 마지막 날짜를 검색 (0) | 2020.07.15 |
[SQL] 어떻게 하루에 1 개 이상의 레코드를 선택하려면? (0) | 2020.07.15 |
[SQL] 5 세트로 그룹 행 (0) | 2020.07.15 |
[SQL] 오라클 SQL 구문 : 인용 식별자 (0) | 2020.07.15 |