У меня есть таблица, содержащая несколько записей на сотрудника с помощью эффективных данных и эффективной последовательности: EMPLID, EFFDT, EFFSEQ.SQL Server 2005 Views
Я пытаюсь найти представление, в котором я мог бы указать дату и дату, отличную от текущей, и получить самую последнюю запись для каждого сотрудника с этой даты. Запрос, который я обычно использую:
SELECT C.EMPLID, C.EFFDT, C.EFFSEQ
FROM PS_JOB C
WHERE C.EFFSEQ = (SELECT MAX(INNERALIAS.EFFSEQ)
FROM PS_JOB INNERALIAS
WHERE INNERALIAS.EMPLID = C.EMPLID
AND INNERALIAS.EFFDT = C.EFFDT)
AND C.EFFDT = (SELECT MAX(INNERALIAS.EFFDT)
FROM PS_JOB INNERALIAS
WHERE INNERALIAS.EMPLID = C.EMPLID
AND INNERALIAS.EFFDT <= GetDate())
Есть ли способ, чтобы создать представление о SQL Server, в котором я могу указать дату для сравнения INNERALIAS.EFFDT
во втором подзапрос?
Вы, кажется, ищете параметризованный вид. Это называется табличной функцией. –
Есть ли причина, по которой вы хотите видеть вместо хранимой функции proc или @table? – JNK
Да. Я могу создать sp и/или функцию, но моя задача - создать отчет на основе Excel, используя эту информацию. Когда я пытаюсь включить подселекцию в своих отчетах Excel, они не могут больше использоваться для редактирования (параметры, модификация и т. Д.). Я пытаюсь создать представление (или некоторые другие средства), чтобы обойти его. – Jason