Je veux afficher a partir de 4 tables des informations a propos des étudiants.
chaque étudiant a au moins une carte. Néamoins, je ne veux afficher que la carte qui a une date d'attribution la plus récente. ALors j'ai construit la requête suivante avec l'assistant de création des vues de Sql Server 2000.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
SELECT     MAX(dbo.CARTES.DATE_ATTRIBUTION) AS Expr1, dbo.PORTEUR.ID_PERSONNE, dbo.SUPPORTE.NUMSERIE, dbo.PERSONNES.NOM, 
                      dbo.PERSONNES.PRENOM, dbo.PERSONNES.Dte_Naissance, dbo.PORTEUR.ID_PORTEUR, dbo.PORTEUR.ID_CARTE, dbo.PERSONNES.PHOTO, 
                      dbo.PERSONNES.STOCKAGE_PHOTO
FROM         dbo.PORTEUR INNER JOIN
                      dbo.PERSONNES ON dbo.PORTEUR.ID_PERSONNE = dbo.PERSONNES.ID_PERSONNE INNER JOIN
                      dbo.SUPPORTE ON dbo.PORTEUR.ID_CARTE = dbo.SUPPORTE.ID_CARTE INNER JOIN
                      dbo.CARTES ON dbo.PORTEUR.ID_CARTE = dbo.CARTES.ID_CARTE AND dbo.SUPPORTE.ID_CARTE = dbo.CARTES.ID_CARTE
WHERE     (dbo.PORTEUR.ID_TYPE_PORTEUR = 'Etu')
GROUP BY dbo.PORTEUR.ID_PERSONNE, dbo.SUPPORTE.NUMSERIE, dbo.PERSONNES.NOM, dbo.PERSONNES.PRENOM, dbo.PERSONNES.Dte_Naissance, 
                      dbo.PORTEUR.ID_PORTEUR, dbo.PORTEUR.ID_CARTE, dbo.PERSONNES.PHOTO
Lorsque j'ai voulu l'executer, j'ai eu le message d'erreur suivant :

Le colonne dbo.PERSONNES.STOCKAGE_PHOTO n'est pas valide dans la liste de sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation ou dans la clause GROUP BY.

J'ai rajouté manuellement dbo.PERSONNES.STOCKAGE_PHOTO dans la clause Group By et j' ai eu l'erreur suivante :

Les types de données text, ntext et image ne peuvent être comparés ou classés, sauf lors de l'utilisation de l'opérateur Like ou IS NULL.

effectivement j'ai ce champs (dbo.PERSONNES.STOCKAGE_PHOTO) et de type binaire dans lequel je stocke des images.