Procédure stockée un peu difficile...

Kati83 Messages postés 65 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 3 septembre 2004 - 24 mars 2004 à 15:33
Kati83 Messages postés 65 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 3 septembre 2004 - 25 mars 2004 à 11:52
Bonjour,

J'ai une table qui contient les informations sur les
actualités que je veux afficher sur mon site (id, titre,
résumé, contenu)

Je voudrais créer une procédure stockée me permettant de
récupérer les 5 dernières actualités.
Jusque là, pas de problème.

Ensuite, j'ai 2 modes d'affichage différents, ce qui fait
qu'en réalité, je dois aller chercher les infos sur les 2
premières actus, et ensuite les infos sur les 3 suivantes.

Ce qui fait que je dois faire 2 proc stockées.
La première récupère les 2 dernières actus
La deuxième récupère les 3 suivantes
(le tout trié selon la date)

Comment est-ce que je dois faire pour que la 2à me
récupère les actus entre la 3è et la 5è plus récente
comprises ?

J'espère avoir été assez claire...

Merci d'avance.

*** Kati ***

4 réponses

TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
24 mars 2004 à 17:35
select top 3 * from table
where champs not in (taprocedurestockéune) order by cequetuveux

Si c'est du SQL server ...

Après tout dépend de ton SGBD

::|The S@ib|::
MVP C#.NET
0
Kati83 Messages postés 65 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 3 septembre 2004
25 mars 2004 à 09:55
J'ai fait comme tu m'as dit :

ALTER Procedure TroisDernieresActus

AS
SELECT TOP 3
titre,
resume

FROM actualite
WHERE titre, resume NOT IN
(
SELECT TOP 2
titre,
resume
FROM actualite
ORDER BY date_act DESC
)

ORDER BY date_act DESC

Mais il veut pas me l'enregistrer : "Syntax error".
Qu'est-ce qu'il y a qui va pas ?

*** Kati ***
0
taharban Messages postés 56 Date d'inscription lundi 7 juillet 2003 Statut Membre Dernière intervention 14 novembre 2007
25 mars 2004 à 10:33
je pense que le "NOT IN" agit sur "resume" et non sur titre + resume. Ce que je fais sur Oracle c'est "titre||resume" pour concatener les deux colonnes
0
Kati83 Messages postés 65 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 3 septembre 2004
25 mars 2004 à 11:52
Merci pour ton aide.
Le || il a pas l'air d'aimer, du coup j'ai trouvé une alternative en utilisant le id :

ALTER Procedure TroisDernieresActus
AS
SELECT TOP 3
id,
titre,
resume

FROM actualite
WHERE id NOT IN
(
SELECT TOP 2
id
FROM actualite
ORDER BY date_act DESC
)

ORDER BY date_act DESC

Et là, ça tourne !!
Je te remercie encore !!

*** Kati ***
0
Rejoignez-nous