Problème propriétés distinct et top dans proc stockée

Kati83 Messages postés 65 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 3 septembre 2004 - 3 mai 2004 à 18:09
Kati83 Messages postés 65 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 3 septembre 2004 - 4 mai 2004 à 10:21
Bonjour à tous,

Je voudrais mettre en place une procédure stockée qui me récupère des informations dans 2 tables.

Voici la structure de mes 2 tables :

Table 1 : id(clé primaire), .., date, id_table2
Table 2 : id(clé primaire), ..., graphique(nom d'image)

Sachant que table2.id = table1.id_table2, je voudrais
récupérer les 3 dernières table1.id, table2.graphique (classées par rapport à ma date de la table 1)

Mon problème c'est que plusieurs lignes de ma table
1 peuvent avoir le même id_table2. Or je voudrais les 3
enregistrements les plus récents, ayant une image
différente.

J'ai essayé de faire un truc du genre :

SELECT TOP 3 DISTINCT table1.id, table2.graphique
FROM table1
INNER JOIN table2
ON table2.id = table1.id_table2
ORDER BY date

Mais visual studio ne veut pas me l'enregistrer, il me met le message suivant :
incorrect syntax near the keyword SELECT
incorrect syntax near the keyword DISTINCT

Est-ce que quelq'un a une idée sur ce qui ne va pas (ou une suggestion pour le faire différemment ?)

Merci d'avance

*** Kati ***

2 réponses

cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
3 mai 2004 à 20:21
SELECT DISTINCT TOP 3 ...

Dans cet ordre ca va mieux je crois :)

A++

:-p Crazyht :)

[Admin Codes-Sources]
[Membre Developer-Association]

Un programmeur, c'est quelqu'un qui résout pour toi, de façon incompréhensible, un problème que tu ignorais avoir...
0
Kati83 Messages postés 65 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 3 septembre 2004
4 mai 2004 à 10:21
Oui, tu as raison, comme ça ça marche impec, mais mon problème n'en est pas résolu pour autant...
Je travaille sous visual studio, si je fais par exemple :

ALTER PROCEDURE LastDonneurId

AS
SELECT DISTINCT TOP 3 id_donneurordres
FROM reference
ORDER BY date_parution DESC

Il ne veut pas me l'enregistrer, en gros, il me dit qu'il faut que la champs qui est dans le ORDER BY soit aussi dans la clause SELECT.
Mais si je l'ajoute dans la clause select, le distinct d'applique au couple id_donneurordres / date_parution, ce qui fait qu'à l'arrivée j'obtiens des doublons...

Est-ce que tu auras une autre idée ?

Merci

*** Kati ***
0
Rejoignez-nous