에 있던 열 2 열에서 가장 최근의 날짜를 찾아 식별 나는 다음과 같은 구조로 tblAssetsInUse라는 테이블이 있습니다SQL은
intPK intAssetID datCheckedOut datCheckedIn
1 450 1/5/2009 10/5/2009
2 300 2/5/2009 <NULL>
3 200 2/5/2009 <NULL>
4 450 12/5/2009 5/7/2009
을하고 나도 한 후 스캔 한 자산 ID를받는 SP가 삽입 또는 체크 아웃되는 자산에 대한 표에 대한 업데이트 보시다시피 datCheckedIn은 현재 사용중인 자산을 알아내는 데 사용되는 Null 일 수 있습니다. 이 절차는 완벽하게 작동합니다. 마지막으로 스캔 할 자산과 테이블에 대한 마지막 작업 (즉, 체크인 또는 체크 아웃)을 결정할 수 있기를 바랍니다. 가장 최근의 날짜 (행과 관계 없음)의 행을 찾은 SQL 코드가 있는데이 코드를 사용하여 별도의 Assets View에 연결하면 작동합니다. 가장 최근 날짜가 체크 아웃 또는 체크인 열에 있다면 어떻게 든 해결할 수 있어야합니다.
SELECT TOP (1) allDates.intPK, MAX(allDates.datLastAction) AS datLastScan, dbo.viwAssets.strFriendlyName, tblAssetsInUse_join.intAssetID
FROM (SELECT intPK, MAX(datCheckedOut) AS datLastAction
FROM dbo.tblAssetsInUse AS tblAssetsInUse_out
GROUP BY intPK
UNION ALL
SELECT intPK, MAX(datCheckedIn) AS datLastAction
FROM dbo.tblAssetsInUse AS tblAssetsInUse_in
GROUP BY intPK) AS allDates
INNER JOIN
dbo.tblAssetsInUse AS tblAssetsInUse_join ON allDates.intPK = tblAssetsInUse_join.intPK
INNER JOIN
dbo.viwAssets ON tblAssetsInUse_join.intAssetID = dbo.viwAssets.intPK
GROUP BY allDates.intPK, dbo.viwAssets.strFriendlyName, tblAssetsInUse_join.intAssetID
ORDER BY datLastScan DESC
결과에 비트 값이 표시되도록 추가 할 수있는 일종의 리터럴 값이 있습니까? 당신의 도움에 대한
감사합니다,
폴 레이놀즈
니스! 나는이 최적화를 할 것이라고 생각한다. 아주 좋은 생각 같아. 그러면 코드에서 어떤 것이 작동했는지 확인하는 작업을 확인할 수 있습니다. 고맙습니다! –