2014-12-08 3 views
0

tblProductstblPromoItems 두 개의 테이블이 있고 두 테이블 모두 동일한 레코드 유형을 포함한다고 가정 해 봅니다. 단순화를 위해 각 레코드에는 IDcreation_date이라는 두 가지 속성 만 있다고 가정합니다. tblProducts에서 레코드를 가져 와서 tblPromoItems에 삽입하면 전체 레코드가 개뿐이며 개의 인스턴스가 동일하고 creation_date일까요?동일한 열 값을 가진 특정 레코드 수를 다른 테이블에 삽입

예를 들어, 아래 표를 사용하면 동일한 creation_date을 가진 최대 2 개의 레코드가있을 수 있다는 조건하에 총 3 개의 레코드를 삽입하는 방법은 무엇입니까?

tblProducts 

ID| creation_date 

A | 2014-12-01 

B | 2014-12-01 

C | 2014-12-01 

D | 2014-12-02 
+1

어떤 SQL 방언? – Beth

+1

어느'RDBMS '와 어떤 2 ​​레코드를 반환 정의 할 수 있습니까? – sgeddes

+0

여러 가지 가능성이있을 때 우승자를 결정하는 기준을 마련해야합니다. – Beth

답변

0

당신은 일 당이 개 기록을 얻을 수있는 common table expressionrow_number()를 사용할 수 있습니다

with cte as (
    select *, 
    row_number() over (partition by cast(creation_date as date) 
         order by creation_date desc) rn 
    from tblProducts 
) 
select * 
from cte 
where rn <= 2 

당신은 N 총 무슨 뜻인지 확실히 모르겠어요를 레코드를 삽입 할 수 있습니다. 아마도 당신은 테이블에 삽입의 수를 제한하고 싶습니까? 한 가지 방법은 그것에 top을 사용하는 것입니다 - select top 100 ...

+0

감사합니다. 나는 다른 것으로 옮겨졌고 지금은이 SQL로 되돌아왔다. 전에 ROW_NUMBER()를 사용하지 않았다면 매력처럼 작동했습니다. 나는 당신에게 업보트를 줄 것이지만, 나는 그렇게 할 명성이 없다. – bcwiniger

관련 문제