2010-02-26 3 views
1

J'ai une procédure stockée qui donnera les derniers dossiers à savoir, par ordre chronologique ajouté c'est ma procédure ....Procédure stockée dans SQL Server (trié par desc)?

select distinct top 5 videos.videoid,videos.videotitle,videos.videoname, 
    convert(varchar,videos.posteddate,106) as posteddate,videos.approvedstatus, 
    videos.videoimage,(ISNULL(videos.views,0.0)) as [views],videos.privacy, 
    (isnull(videos.rating,0.0)) as rating,videos.userid, 
    users.userid,users.username from videos left outer join users on 
videos.userid=users.userid 
    where videos.approvedstatus='Y' and videos.privacy='P' 
order by posteddate desc 

mais il ne donne pas les dernières enregistrements

quand j'exécuter la requête

select * from videos order by posteddate desc 

donne des enregistrements exacts. mais la procédure stockée ne donne pas les enregistrements exacts. pouvez-vous m'aider, merci.


+0

@Surya sasidhar - "la procédure de stockage ne donne pas d'enregistrements exacts". S'il vous plaît ajouter à votre question: qu'est-ce que vous attendez, ce qui est réellement retourné et pourquoi c'est faux. – Oded

+1

je veux videoid, videoname, videotitle, vues, userid, nom d'utilisateur, évaluation, posteddate, de la table des utilisateurs et des vidéos table –

+1

Juste un nitpick: c'est un magasin ** d ** procédure (c'est ** stocké ** dans SQL Server) - pas une procédure de "magasin" (n'a rien à voir avec un magasin ou toute sorte). –

Répondre

4

Utilisez ORDER BY videos.posteddate

select distinct top 5 
    videos.videoid, 
    videos.videotitle, 
    videos.videoname, 
    convert(varchar,videos.posteddate,106) as posteddate, 
    videos.approvedstatus, 
    videos.videoimage, 
    (ISNULL(videos.views,0.0)) as [views], 
    videos.privacy, 
    (isnull(videos.rating,0.0)) as rating, 
    videos.userid, 
    users.userid,users.username 
    from 
    videos 
    left outer join 
    users on videos.userid=users.userid 
    where 
    videos.approvedstatus='Y' and videos.privacy='P' 
    order by 
    videos.posteddate desc 

Votre original est le equivalant de ORDER BY convert(varchar,videos.posteddate,106) DESC

Vous triez par chaîne "dd yyyy mon", pas la datetime réelle souhaitée (aaaa-mm-jj hh etc)

Je suppose que c'est SQL Server 2000: de la mémoire SQL Server 2005 n'acceptera pas cette ambiguïté

+0

ok Mr.gbn merci pour la réponse je vais vérifier et vous informer –

+0

je suis en utilisant sql 2005 –

+0

ya je l'ai eu M. gbn je supprime simple .. convertir (varchar, videos.posteddate, 106) comme posteddate, et je change comme ça videos.posteddate et maintenant il donne correct je dire les dernières vidéos –

Questions connexes