J'ai une requête complexe qui montrée dans la photo ci-dessous
i supprime des codes à barres en double par ceci où p> Comment supprimer une carte d'identité en double ??
Je veux retourner 1 enregistrement pour le produit avec ID 31 dans la photo ci-dessous:
p> Désolé pour mon mauvais anglais. p> p>
3 Réponses :
La méthode la plus simple dans SQL Server est la suivante:
SELECT TOP (1) WITH TIES . . . FROM . . . . . . ORDER BY ROW_NUMBER() OVER (PARTITION BY product.id ORDER BY (SELECT NULL))
tr code> pour product_translations code>. Li>
- J'ai écrit des lots et beaucoup de SQL et je n'ai jamais eu à mélanger
gauche code> et joindre à droite code> s. Commencez avec la table dans laquelle vous souhaitez conserver toutes les lignes, puis utilisez simplement rejoindre code> s. Li>
ul> p>
Ma requête est construite avec SQL Server, une jointure droite et une jointe à gauche est dépend de la table de base, merci pour votre réponse.
@ DAVID2020 La requête est écrite à l'aide du concepteur, pas SQL Server. Ce n'est pas différent des requêtes écriées à la main - que max () code> a dû être écrit à la main en fait. En général, le concepteur n'est pas parfait et n'est généralement utilisé que comme moyen de démarrer rapidement. En tout cas, le concepteur peut i> travailler avec des alias de table, bien qu'il soit généralement plus rapide de simplement éditer la requête
@Panagiikanavos Peu pire est que le concepteur crée des requêtes avec la syntaxe obsolète. 3 & 4 Naming dans la liste des colonnes a été obsolète depuis un moment. Semble que si MMS ne peut pas adhérer à cela, il y a peu à présent une chance que cela soit effectivement supprimé.
Je soupçonne qu'il peut y avoir un problème de langue - il semble que vous ayez une requête et que cela retourne plus de lignes que vous le souhaitez. Je ne pense pas que vous voulez La raison pour laquelle vous voyez deux instances d'ID de produit 31 est qu'il existe deux enregistrements correspondants dans View_Product_Category Code> avec différents
catids code> (1 et 2). Sans en savoir plus sur les données, il est difficile d'être certain de faire face à cela; La requête ci-dessous les limite à enregistrer avec catid 1. p>
merci pour votre réponse, mais catid est variable et "et vpc.catid = 1 'est ma réponse
Lequel voulez-vous inclure - un aléatoire, le plus haut, le plus bas?
en fonction de votre phrase où vous utilisez le groupe et vous pouvez répéter ceci pour voir view_product_category
Je suppose que ci-dessous le code est votre réponse et complète de requête est p>
Mettez à jour votre question add code sous forme de texte non comme image ..
Comment voulez-vous dire catid double, lorsque vous avez deux valeurs distinctes: 1 et 2 ???
Il est édité excusant moi
MySQL et SQL Server sont des produits très différents. N'utilisez pas les deux tags à moins que vous ne souhaitiez demander à quelque chose pour bases de données i>. Cela ressemble à SQL Server
Bonjour, et bienvenue au débordement de pile. Il vous aiderait si vous pouviez poster des échantillons de données et des résultats attendus - dans le tir de l'écran que vous affichez, il apparaît que l'ID 31 a deux enregistrements correspondants dans View_Product_Category, avec différentes valeurs CAT_ID - que vous souhaitez supprimer?
Quant à trouver et supprimer des doublons, vous trouverez de nombreuses questions en double montrant comment utiliser
Row_Number Over () code> pour classer les lignes des colonnes que vous utilisez pour détecter des doublons, puis supprimer ceux dont Le numéro de ligne est> 1. Cela fonctionne dans toutes les versions SQL Server prises en charge. Cela fonctionne également dans MySQL 8.0. Il n'y a pas besoin de la
Sélectionnez max () .... Code> Subquiery. L'utilisation de classement est beaucoup plus rapide aussi, car les sous-sollicités doivent être exécutées avant que la requête extérieure ne puisse être évaluée, ce qui entraîne deux numérisations de table au lieu d'une
BTW Les deux rangées avec ID 31 ne sont pas dupliquées. Les deux lignes ont une valeur différente code> catid code>. Affichez les schémas de table, les données de test et la sortie souhaitée afin que les gens puissent comprendre ce que vous voulez dire, ce que vous attendez. Il se pourrait que le reste de la requête soit faux
Ressemble à Powerbuilder pour moi, pas c #.
Il existe un grand nombre de relations entre les tables de produits et de catégories et entre les tables de produits et de code à barres et entre les tables de produits et de prix, je souhaite récupérer mes produits avec un prix maximum et une catégorie et un code à barres
@Panagiotiskanavos Oui, ne pas dupliquer, mais je veux revenir un 31