2014-02-22 1 views
0

이 항목에 대해 깊이 생각하고 있습니다 ... 여러 개의 결과를 반환하는 3 개의 연결된 테이블이있는 MS 쿼리가 있습니다. 데이터가 너무 커서 Excel로 가져올 수 없으므로 가장 최근의 항목으로 제한해야합니다. 다음은 현재 사용중인 SQL 사본입니다. 나는 마지막에이 추가 필드 inventory.lastissuedate여러 개의 연결된 테이블을 포함하는 데이터베이스 쿼리의 최신 항목 만 반환

SELECT invbalances.itemnum 
    , invbalances.curbal 
    , inventory.maxlevel 
    , a_inventory52.minlevel 
    , inventory.sstock 
    , inventory.deliverytime 
    , inventory.category 
    , inventory.lastissuedate 
FROM MX7PROD.dbo.a_inventory52 a_inventory52 
    , MX7PROD.dbo.invbalances invbalances, MX7PROD.dbo.inventory inventory 
WHERE invbalances.itemnum = inventory.itemnum 
AND a_inventory52.itemnum = invbalances.itemnum 
AND ((inventory.category<>'cstk' 
And inventory.category<>'ns' 
And inventory.category<>'nore' 
And inventory.category<>'sp')) 
+0

가장 최근의 어떤 필드의 최신 값으로 결정 했습니까? –

답변

0

시도를 기반으로 가장 최근의 항목 남기고 모두 제거해야합니다

AND inventory.lastissuedate = 
(SELECT MAX(lastissuedate) FROM MX7PROD.dbo.inventory) 
+0

이것은 효과가 있습니다. 고맙습니다. 이제 인벤토리 영수증과 일치하지 않는 정확한 lastissuedate가있는 항목이있는 또 다른 문제가 있습니다. 나는 이들을 제거하기 위해 또 다른 독특한 분야를 찾고있다. – user3341199

+0

@ user3341199 도와 드리겠습니다. 문제를 해결 한 경우 내 대답을 수락하거나 투표를 고려하십시오. 또한 다른 질문이있는 경우 댓글 대신 새로운 질문으로 게시하여 관심을받는 것이 좋습니다. – jpw

+0

나는 결과 집합을 좁힐 수 있었지만 생각보다 훨씬 복잡했다. 각 위치의 각 항목 번호에 가장 최근의 곡목이 필요합니다. lastissuedate를 사용함으로써 나는 실제로 전체 주식에서 가장 최근의 거래만을 얻습니다. 더 이상의 조언? 현재 코드를 게시합니다. – user3341199

0

편집 위치 필드에 테이블 invbalances.location를 사용 할 수 있습니다.

이렇게하면 데이터가 특정 항목 및 위치의 마지막 곡목 인 행으로 제한됩니다.

SELECT invbalances.itemnum, 
     invbalances.curbal, 
     inventory.maxlevel, 
     a_inventory52.minlevel, 
     inventory.sstock, 
     inventory.deliverytime, 
     inventory.category, 
     inventory.lastissuedate 
    FROM MX7PROD.dbo.a_inventory52 a_inventory52, 
     MX7PROD.dbo.invbalances invbalances, 
     MX7PROD.dbo.inventory  inventory 
WHERE invbalances.itemnum = inventory.itemnum 
    AND a_inventory52.itemnum = invbalances.itemnum 
    AND inventory.category <> 'cstk' 
    And inventory.category <> 'ns' 
    And inventory.category <> 'nore' 
    And inventory.category <> 'sp' 
    and invbalances.curbal = 
     (SELECT MAX(x.curbal) 
      FROM MX7PROD.dbo.inventory x 
     where x.itemnum = invbalances.itemnum 
      and x.location = invbalances.location) 
+0

마지막 곡목으로 편집됩니다. 이것이 제가 가장 최근의 기록을 어떤 분야에서 결정했는지 묻는 이유입니다. 당신이 우리에게 말하지 않으면 우리가 알 수있는 방법이 없습니다. –