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

Signaler
Messages postés
65
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
3 septembre 2004
-
Messages postés
65
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
3 septembre 2004
-
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

Messages postés
1522
Date d'inscription
mardi 18 décembre 2001
Statut
Modérateur
Dernière intervention
21 août 2010
5
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...
Messages postés
65
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
3 septembre 2004

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 ***