J'ai une table qui contient plusieurs enregistrements par employé par données effectives et séquence effective: EMPLID, EFFDT, EFFSEQ. J'essaie d'obtenir une vue dans laquelle je pourrais spécifier une Date de Date autre que la date actuelle et obtenir l'enregistrement le plus récent pour chaque employé à cette date. La requête que je l'habitude d'utiliser est:Vues SQL Server 2005
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())
Est-il possible de créer une vue sur le serveur SQL dans lequel je peux spécifier une date de comparer la INNERALIAS.EFFDT
au deuxième sous-sélection?
Vous semblez rechercher une vue paramétrée. C'est ce qu'on appelle une fonction de table. –
Y a-t-il une raison pour laquelle vous voulez une vue au lieu d'une fonction proc ou @table? – JNK
Oui. Je suis capable de créer une fonction sp et/ou une fonction, mais mon défi est de créer un rapport basé sur Excel en utilisant cette information. Lorsque j'essaie d'inclure une sous-sélection dans mes rapports Excel, ils ne peuvent plus être utilisés pour les modifications (paramètres, modification, etc.). J'essaie de créer une vue (ou d'autres moyens) pour contourner le problème. – Jason