Assembler le résultat de deux requetes sur une seule ligne - SQL/NoSQL - Programmation
Marsh Posté le 06-10-2005 à 09:40:39
peut etre :
Code :
|
EDIT : si ton SGBD te le permet
Marsh Posté le 06-10-2005 à 09:50:23
Merci beaucoup, ça marche nickel, j'ai des NULL là où j'ai pas de doublons, mais ça me va très bien.
En plus, j'ai compris la manip, ce qui était le but aussi Je vais pouvoir décliner la chose, j'ai d'autres requetes du style.
J'avais oublié de préciser que je travaille avec MySQL.
Sinon, pour la double requête (cerise sur le gateau) y aurait rien à faire ?
Marsh Posté le 06-10-2005 à 09:53:58
louborg a écrit : Merci beaucoup, ça marche nickel, j'ai des NULL là où j'ai pas de doublons, mais ça me va très bien. |
je n'ai pas trop le temps de m'y pencher (j'ai un peu de boulot moi aussi ) mais je le ferais des que j'aurais 5 minutes
en attendant un excellent article sur la gestion des doublons
Marsh Posté le 06-10-2005 à 12:18:52
Pour la simplification de la 2ème requête :
Code :
|
Non ?
Marsh Posté le 06-10-2005 à 14:45:52
Beegee a écrit : Pour la simplification de la 2ème requête :
|
Je serais effectivement tenté de dire que oui...
C'est bizarre, parce que ta requête me semble bonne, mais je n'obtiens pas le même résultat...
Avec mes données actuelles, ma req donne 171 doublons pour le pays FR et ta version 170 seulement. Par contre pour les 17 autres pays où des doblons existent, le résultat est bon (en général <15, ce qui explique peut être).
Ca fait plus de 10 ans que j'avais pas fait de SQL... j'en avais oublié toute la puissance
Je vais détailler les résultats lignes par ligne pour FR et essayer de comprendre la différence entre les deux requetes... Je pencherai d'ailleurs pour une erreur chez moi, la tienne étant plus simple et moins sujette à effet de bord
Marsh Posté le 06-10-2005 à 14:57:32
fais :
ta requête
MINUS
ma requête
comme ça tu verras la différence.
edit : en fait, je pense savoir. Ma requête renvoie les pays dont les 2 clés, ensembles, ont plus d'un pays. La tienne renvoie les pays pour lesquels les 2 clés, indépendamment, ont plus d'un pays.
Remplace le AND dans ma requête par un OR et vois ce que ça donne (ça devrait alors coincider avec la tienne ).
Code :
|
Marsh Posté le 06-10-2005 à 15:02:52
rhâââ ce mySql relou
edit : et puis ma nouvelle requête avec le OR est foireuse, on compte plusieurs fois les mêmes lignes ... pffff.
Ce serait pas mal louborg que tu dises en français ce que tu veux faire, pour repartir de zéro
Marsh Posté le 06-10-2005 à 15:32:26
Beegee a écrit : rhâââ ce mySql relou |
Mon sujet exposé simplement :
J'ai une table avec un ensemble d'enregistrement, que du classique
J'ai deux identifiants de personnes (cle1/cle2) associés à chaque enregistrement ainsi qu'un code pays, plus d'autres infos qui ne nous intéressent pas ici.
Je ne dois normalement jamais avoir deux enregistrements avec le même couple cle1/cle2 (on ne se préoccupe pas ici du pays).
Si c'est le cas, je veux les lister (par pays), because au final ce sont des stats qui doivent être générées par pays.
Donc, si j'ai deux enregistrement avec cle1/cle2 identique, c'est à comptabiliser.
Ce qui me plairait serait d'avoir uniquement dans le décompte qu'un des couples en double et non pas le total des occurences, mais ce n'est pas primordial.
Dans un second temps, qui ne nous intéresse pas ici, quasiment à la main, je prends les doublons, les examine et détermine lequel virer, c'est trop sensible pour les virer automatiquement à mon grand regret.
Marsh Posté le 06-10-2005 à 15:48:11
je pense que
Code :
|
te donne les doublons que tu recherche
Marsh Posté le 06-10-2005 à 16:33:54
betsamee a écrit : je pense que
|
désolé mais non...
exemple de ce que j'obtiens (quelques lignes seulement) :
'AT', 2
'AU', 2
'BR', 2
'BR', 2
'BR', 2
'BR', 2
'CN', 2
'CN', 2
'CN', 2
'CN', 2
'CN', 2
'CN', 2
'DE', 2
Sinon, j'ai fait mon delta ente ma req et la tienne...
Sans surprise, la mienne était foireuse...
Je m'explique:
Ma requete ne demandait pas à avoir cle1/cle2 sur la même ligne alors que la tienne oui... donc la bonne solution est bien :
Code :
|
J'ai voulu faire compliqué
Merci encore à tous pour votre coup de main, quelle efficacité
Marsh Posté le 06-10-2005 à 09:30:42
J'ai deux requêtes sur une même table.
Dans l'une d'elle, je détermine le nombre de documents par pays.
Très basique :
Dans la seconde, je détermine le nombre de doublons de documents par pays, dans mon cas ça peut arriver d'avoir des entrées en doublon.
Ma question principale est donc est-ce qu'on peut joindre les deux requetes, j'ai employé le terme joindre, parce que je sens que le mot clé JOIN dans ce cas est mon ami, mais j'ai un peu de mal à l'utiliser...
Dans un deuxième temps, si quelqu'un a une idée pour simplifier la deuxième requete, parce qu'elle fait deux fois le même select en changeant simplement ce qui est extrait (cle1/cle2).
Petite précision : Je n'ai pas systématiquement de doublon pour chaque pays, donc le nombre de lignes retournées n'est pas le même pour chaque requete, je ne sais pas si c'est important.