2017-07-19 1 views
1

J'essaie d'écrire une requête SQL qui sélectionne le top 4 à partir d'une requête aléatoire afin que je puisse faire des contrôles de qualité sur certains cas. Chaque cas a un numéro de compte lié à un client. Le problème est que chaque cas a un numéro unique mais peut avoir le même numéro de compte. Ce que je cherche à faire est si le numéro de compte est le même sur deux cas pour que le SQL choisissent une nouvelle rangée avec un numéro de compte différent. Les résultats affichent 4 comptes mais parfois il est possible que le même compte soit affiché deux fois. Comme indiqué, je veux seulement afficher des comptes distincts pour une période de 7 jours.Sélection de lignes différentes si les valeurs d'une colonne sont égales

J'ai essayé le mot-clé distinct et il affiche encore les comptes deux fois dans certains résultats de requêtes.

Répondre

1

Essayez la déclaration suivante. utiliser row_number pour obtenir uniquement en ligne pour le même numéro de compte.

SELECT * FROM (
     Select 
      Account, 
      CaseNum, 
      ROW_NUMBER()OVER(PARTITION BY Account ORDER BY GETDATE()) AS rn 
     From dbo.tblRequest 
     Where LoggedDate Between GetDate() - 7 and GetDate() - 1 
    ) AS t WHERE t.rn=1 
    Order By 
    NewId() 
+0

Cela a fonctionné merci pour l'aide que j'ai travaillé toute la journée. –