Все еще используется 2008. У меня есть следующие две таблицы и вы должны иметь возможность вытаскивать людей, когда на заданную дату код является d в первый раз. Легко получить тех, кто никогда не был, но я не могу понять, как включить людей в первый раз, когда они будут d, если предыдущий e. Я попытался использовать команду для создания списка всех es и сопоставить ее с другими, но не удалось выяснить, как связать ее с другим запросом.получение уникальных записей во времени при изменении значения SQL
Table1 Table2
Person date1 date2 date3 date4 date5 date6 Person FirstServ
1 e e d d d 1 date1
2 e e d 2 date2
3 d d d 3 date4
4 d d 4 date4
5 e d d d 5 date1
6 e e d d 6 date1
7 e e d d d 7 date2
8 d d d 8 date4
9 d d 9 date4
10 d d d 10 date4
Текущий код без приведения в спецификаторе есть (и да, я знаю, что я не обязательно является наиболее эффективным кодером :))
declare @myorder int
set @myorder = (select academicOrder from DimTermYear dt3 where termID='14/FA');
with myDual as (
select distinct ds.STTR_STUDENT, dt.academicOrder
from dbo.DimStudentTerms ds
left join DimTermYear dt on dt.termID=ds.STTR_TERM
where ds.STTR_STU_CURRENT_TYPE = 'DE'
)
Select distinct sa.STC_PERSON_ID,ds2.STTR_STU_CURRENT_TYPE,dt2.academicOrder
from StudentAcadCredFrom2000 sa
left join dbo.DimStudentTerms ds2 on ds2.STTR_STUDENT=sa.STC_PERSON_ID
left join DimTermYear dt2 on dt2.termID=ds2.STTR_TERM
where (sa.STC_CURRENT_STATUS in ('A','N') or (STC_CURRENT_STATUS='D' and STC_GRADE IS NOT NULL))
and sa.STC_TERM='14/FA' and ds2.D04_FIRST_TERM_ENR='14/FA'
and ds2.STTR_STU_CURRENT_TYPE='DS' and [email protected]
order by sa.STC_PERSON_ID
Ваш код не совпадает с данными, например, вы предоставили. Пожалуйста, настройте тот или иной, чтобы уточнить свои намерения. – Synergist
Спасибо за редактирование dnoeth, я работал, чтобы понять это, но вы избили меня! – Michael
Synergist, Это мое первое сообщение, поэтому я увижу, что я могу сделать, просто использовал таблицы в качестве примеров базовой проблемы. Я понимаю, что полная информация может быть более полезной, подумал, что я просто выброшу свой код в случае, если это поможет. Прошу прощения, если это сделало его более запутанным. – Michael