8
votes

Supprimer les enregistrements duplicats de la vue

J'ai une vue. Comment puis-je afficher uniquement des enregistrements distincts de celui-ci. Il y a 19 colonnes. Je veux afficher tout en un seul sans duplicata, et je ne veux pas supprimer les duplicats. J'y ai besoin que pour la visualisation des objectifs. xxx

si j'utilise la requête précédente, il renvoie 1000 enregistrements. Mais si j'utilise la requête suivante, il renvoie un enregistrement exact sans dupliquer. Mais je veux que toutes les colonnes soient affichées. xxx


0 commentaires

3 Réponses :


0
votes

n'utilise pas () code> pour distinct code>. Utilisez simplement:

select distinct col1, col2 .. from your_table


1 commentaires

Pas possible, la requête ci-dessus devrait produire toutes les valeurs distinctes de votre table. Publier des données, il sera plus facile d'aider



1
votes

Essayez:

SELECT [Complaint Number], MAX([Complaint_For]), MAX([Total_Complaint_Qty]), ...
FROM [CCCMPREPOSITORY].[dbo].[VW_Final_]
GROUP BY Complaint Number


0 commentaires

11
votes

Vous devez avoir des enregistrements en double pour certains / tous les numéros de plainte, afin d'utiliser distinct ne fonctionnera pas. Considérons une table simple telle que xxx

si vous voulez juste un enregistrement pour colonne1 = A, SQL n'a aucun moyen de savoir s'il faut mettre x ou y dans la colonne2. C'est le même problème que vous rencontrez, mais avec 19 colonnes, pas 2. Vous devez mettre en œuvre une sorte de logique quant à la manière de décider quelle ligne montrera pour chaque numéro de réclamation. Donc, pour la table ci-dessus si je voulais que X montre dans la colonne2, j'utiliserais la requête suivante: xxx

ici, j'utilise le Row_Number () Fonction pour hiérarchiser chaque ligne, puis affichant seulement celui avec la priorité la plus élevée. Si je ne me souciais pas de l'ordre dans lequel ils sont sortis, je pourrais utiliser quelque chose comme ça pour choisir une rangée aléatoire. xxx

puisque je ne sais pas quelle logique s'appliquer à Votre requête Je ne peux pas poster exactement ce dont vous avez besoin, mais je peux essayer de vous aider à démarrer: xxx

vous auriez juste besoin de jouer avec le commander par dans la fonction Row_Number pour répondre à vos besoins.


2 commentaires

En dehors, envisagez de renommer vos colonnes et vos tables / vues. Les espaces dans les noms d'objets sont abominables.


@RAMA Je pense que vous avez suscité la réponse mais pas acceptée. Je ne peux toujours pas voir la coche verte, désolé si je me trompe .. meta.stackexchange.com/questions/5234/...