2010-02-26 7 views
1

J'écris une procédure stockée dans SQL Server comme celui-ciProcédure stockée dans SQL Server (distinct)?

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 inner join users on 
users.userid=videos.userid where videos.approvedstatus='Y' and videos.privacy='P' 
order by videos.posteddate desc 

mais je reçois cette erreur peut me suggérer

éléments ORDER BY doit apparaître dans la liste de sélection est spécifiée si SELECT DISTINCT.

Répondre

4

Au lieu de Video.posteddate, utilisez postsdate directement.

sélectionner haut distinct 5 videos.videoid, videos.videotitle, videos.videoname, converti (varchar, videos.posteddate, 106) en tant que posteddate, videos.approvedstatus, videos.videoimage, (isnull (videos.views, 0.0)) en tant que [views], videos.privacy, (isnull (videos.rating, 0.0)) en tant que note, videos.userid, users.userid, users.username from videos internes rejoindre utilisateurs sur users.userid = vidéos .UserID où videos.approvedstatus = 'Y' et videos.privacy = 'P' commande par posteddate desc

+0

ok je vais essayer de vous informer plus tard –

+1

vous remercie M. Ravia, je comprends et ça fonctionne bien –

1

lorsque vous utilisez distinctes, les lignes uniques sont cueillies accordin g à votre déclaration de sélection. Plus tard dans la requête lorsque vous utilisez l'ordre par colonnes, les colonnes ne sont pas dans le jeu de résultats, vous devez donc ajouter ces colonnes manquantes dans votre liste de sélection aussi.

+0

merci M. Adeel –

Questions connexes