표 a. 표 b. 두 개의 테이블이 있습니다. 테이블 A에는 8000 개 이상의 레코드가 있으며 시간이 지남에 따라 계속 증가합니다. 테이블 B에는 5 개 정도의 레코드 만 있으며 거의 증가하지 않지만 가끔 증가합니다.
테이블 A의 ID가 테이블 B와 일치하는 테이블 A의 마지막 레코드를 쿼리하고 싶습니다. 문제는 다음과 같습니다. 테이블 A에서 모든 행을 가져옵니다. 테이블 A와 B가 한 번 일치하는 행만 필요합니다. 새 행이 테이블 B에 삽입되고 반복되지 않을 때 고유 한 ID입니다.
도움을 주시면 감사하겠습니다.
SELECT a.nshift,
a.loeeworkcellid,
b.loeeconfigworkcellid,
b.loeescheduleid,
b.sdescription,
b.sshortname
FROM oeeworkcell a
INNER JOIN dbo.oeeconfigworkcell b
ON a.loeeconfigworkcellid = b.loeeconfigworkcellid
ORDER BY a.loeeworkcellid DESC
난 당신이 단지 싶어 가정입니다 lastest
로부터 (당신이 말한대로) 행을 TableA
하지만, JOIN
모든 rows.You가 사용할 수있는 당신을 제공 ROW_NUMBER ()를 ROWNUMBER를 얻기 위해 다음과를 조인 적용 및 필터 Where
만 선택 절 의 첫 번째 행 JOIN
. 따라서 아래와 같이 시도 할 수있는 것은
;WITH CTE
AS
(
SELECT * , ROW_NUMBER() OVER(PARTITION BY loeeconfigworkcellid ORDER BY loeeworkcellid desc) AS Rn
FROM oeeworkcell
)
SELECT a.nshift,
a.loeeworkcellid,
b.loeecoonfigworkcellid,
b.loeescheduleid,
b.sdescription,
b.sshortname
FROM CTE a
INNER JOIN dbo.oeeconfigworkcell b
ON a.loeeconfigworkcellid = b.loeeconfigworkcellid
WHERE
a.Rn = 1
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다