2013-07-22 3 views
-4

Это мои таблицы упрощенным ..ВЫБРАТЬ TOP 1 для каждого опорного идентификатора

person 
(id [int], 
    surname [varchar] (30), 
    ref [int], 
) 

episode 
(
    id [int], 
    ref [int], 
    typeId [int], 
    startDate [datetime] 
) 

type 
(
    typeId [int], 
    typeName [varchar] 
) 

Я хочу, чтобы выбрать все люди, которые имеют более чем 1 эпизод и самый старый эпизод началось после 1 января 2013 г. я попытался с помощью Row_Number и раздел, но я использую Sql Server 2005, и ему не понравился Row_Number().

+1

Вы не показать, что вы пробовали и модель DB далека от ясности. Обновите свой вопрос, если вы не хотите его закрывать в течение нескольких минут ... –

+0

Можете ли вы разместить свой код, где вы пытались Row_Number()? Он должен работать на sql 2005: http://stackoverflow.com/questions/1471879/sql-server-2005-row-number – JeffO

ответ

3

использование:

having count(*)>1 
and min(startDate) >'1 Jan 2013' 

Отредактировано: Ниже комментарий прямо

+0

'min (stardate)' вместо (самый старый эпизод) –

+0

+1 теперь это правильно :) –