2016-12-08 4 views
0

을 중단했다가 내가이 하나 개의 테이블을 추가 할 때, 모든 것을 제외하고 잘 작동 거기에 여러 테이블과 쿼리를 만들려고, 나는 ODBC 호출이 오류MS 액세스 ODBC 오류 6623 : Winsock을 가상 회로

6623: A Winsock virtual circuit was aborted.

실패 있어요

Advantage SQL을 사용하여 외부 데이터베이스를 연결하여 보고서를 만들었습니다.

오류 제공하는 쿼리에 대해 SQL :

SELECT podetail.ItemPartNbr 
     ,podetail.ItemDescription 
     ,Sum(podetail.Qty) AS LastYearOrdQty 
FROM poheader 
    LEFT JOIN podetail 
     ON poheader.PoNbr = podetail.PoNbr 
WHERE poheader.PoDate >= DateSerial(Year(Date())-1,Month(Date()),1) 
    and poheader.PoDate <= Date() 
GROUP BY podetail.ItemPartNbr 
     ,podetail.ItemDescription; 

나는 위의 쿼리와 다른 테이블을 결합하려는 기본 SQL :

SELECT 
    itemmast.ItemPartNbr 
    , itemmast.Description 
    , Sum(iteminv.QtyOnHand) AS SumOfQtyOnHand 
    , itemmast.MinOrderQty 
    , itemmast.Cost 
    , Sum(iteminv.QtyAllocated) AS SumOfQtyAllocated 
    , itemmast.ReOrderQty 
    , QtyLastYearPurchase.LastYearOrdQty 
FROM 
    (itemmast 
    LEFT JOIN iteminv ON itemmast.ItemPartNbr = iteminv.ItemPartNbr) 
    LEFT JOIN QtyLastYearPurchase ON (itemmast.Description = QtyLastYearPurchase.ItemDescription) 
     AND (itemmast.ItemPartNbr = QtyLastYearPurchase.ItemPartNbr) 
GROUP BY 
    itemmast.ItemPartNbr 
    , itemmast.Description 
    , itemmast.MinOrderQty 
    , itemmast.Cost 
    , itemmast.ReOrderQty 
    , QtyLastYearPurchase.LastYearOrdQty; 

내가 의해 관절 필드를 설정을 ItemPartNbr 그리고 위의 첫 번째 쿼리의 QtyLastYearPurchase.LastYearOrdQty이 두 번째 쿼리에 추가되어야합니다.

오류를 제공하는 쿼리/테이블을 포함하여 각 쿼리/테이블을 열려고했는데 모두 연결이 잘되어있어서 연결과 관련이 없습니다.

첫 번째 쿼리에서 WHERE (((poheader.PoDate)>=DateSerial(Year(Date())-1,Month(Date()),1) And (poheader.PoDate)<=Date()))을 제거하면 두 번째 쿼리에서 레코드를 잘 표시 할 수 있지만 레코드를 표시하는 데 너무 오래 걸립니다.

이 문제를 해결하기위한 권장 사항은 무엇입니까? 고맙습니다!

답변

0

그래서 itemmastiteminv 테이블간에 쿼리를 만들고 방금 만든 쿼리와 내가 게시 한 첫 번째 쿼리로 itemmast 테이블을 연결하려고했습니다. 이제는 지금까지는 작동하지만, 아직까지는 영원히 열리고 있습니다.

하나의 쿼리로 모두 여러 쿼리를 조합해야하기 때문에 약간 번거로우 십니다. 세 가지 보고서를 작성하기 위해 거의 20 개의 쿼리 만 있습니다.