안녕하세요, 다른 Excelworkbook에서 Excel의 가입을 시도하고 있습니다.SQL 주문 접수 및 그룹
첫 번째 테이블의 기본 키는 Part_No입니다. 이것은 기본 키가 아니므로 1 대 1 조인을 할 수 없습니다.
LIKE 및 NOT LIKE 키워드와 일치하는 결과에서 최상의 주문 상태를 선택하고 싶습니다.
WHERE 문이 완벽하게 작동하지만 FIRST 문이 ORDER BY와 일치하지 않는 것 같습니다. 결과는 무작위입니다. 때로는 'Canceled (취소됨)'명령을 받게됩니다. 동일한 파트의 주문이 재고가있는 경우에 주문합니다. 재고가있는 내부 Select 만 실행하면 두 행이 표시됩니다.
Excel vba에서 내 ADODB 연결에 Provider=Microsoft.ACE.OLEDB.12.0
을 사용하고 있습니다.
무엇이 잘못 되었나요? 당신의 도움을 주셔서 감사합니다!
SELECT
FIRST(o.Part_No),
FIRST(o.Order_Desc),
FIRST(o.Order_Status)
FROM
Parts
LEFT JOIN
(
SELECT *
FROM Orders
WHERE
Orders.Order_Desc Like '%keyword%' AND
Orders.Order_Desc Not Like '%otherkeyword%'
ORDER BY
IIF(Orders.Order_Status = 'In Stock' , 1,
IIF(Orders.Order_Status = 'In Transit' , 2,
IIF(Orders.Order_Status = 'Ordered' , 3,
IIF(Orders.Order_Status = 'Canceled' , 4)))) ASC
) AS o
ON Parts.Part_No = o.Part_No
GROUP BY Parts.Part_No;
다음은 예입니다.
List Parts
Part No
1
2
List Orders
Part No Order_Desc Order_Status
1 keyword In Stock
1 keyword Canceled
2 keyword Ordered
2 not keyword In Stock
2 keyword Canceled
3 keyword Ordered
3 keyword In Stock
3 keyword In Stock
5 not keyword In Stock
What i get
1 keyword Canceled (seems Random right or wrong)
2 keyword Ordered
Desired Result
1 keyword In Stock
2 keyword Ordered
이 예제가 도움이되기를 바랍니다. 저는 여기에 새로운 글을 올리고 있습니다. 이상한 테이블에 대한 죄송합니다
이 작동하지 않았다. Select 또는 I get '집계 함수의 일부로 지정된 표현식'Order_Status_OrderBy '를 포함하지 않는 쿼리를 실행하려고했습니다.' – phlopydisk
GROUP BY – user3815462
에 Order_Status_OrderBy를 추가하십시오. 결과가 여러 행이되는 Order_Status_OrderBy에 하나씩 결과가 추가됩니다. 그러나 행은 올바른 순서로 작성되어 주문 순서가 작동합니다. 단지 FIRST가 그 일을하지 않는 것 같습니다. – phlopydisk