Mysql exclure double critère

Mysql exclure double critère - SQL/NoSQL - Programmation

Marsh Posté le 14-01-2015 à 10:13:07    

Salut,  
Bon la réponse est surement toute conne mais j'ai un gros problème de logique avec ces trucs.  :pt1cable:  
 
En gros en mysql

Code :
  1. Client|Prix|crit1|crit2|crit3


Je veux exclure ceux qui ont une certaine combinaison 2 et 3
 
Bêtement j'ai fait :
Select sum(prix)
From table  
Where crit1 = 'XXX'
AND (crit2 not in ('AAA', 'BBB') ' AND crit3 not in ('CCC', 'DDD'))
GROUP BY client
Mais je retrouve pas ce que je veux pour l'instant et je doute de ma méthode.  
 
C'est quoi la bonne syntaxe ou logique à avoir ?  
 
Merci.


Message édité par stefaninho le 14-01-2015 à 10:14:51

---------------
Et vous, quel est votre Final Fantasy préféré ?  
Reply

Marsh Posté le 14-01-2015 à 10:13:07   

Reply

Marsh Posté le 14-01-2015 à 10:45:56    

Je comprends pas, c'est quoi ta combinaison ?
 
Donne nous la composition de ta table et ce que tu attends comme résultat ?
 

Reply

Marsh Posté le 14-01-2015 à 11:19:49    

Déjà, on pourrait étrange de trouver les critères dans la table alors que le couple client/prix semble dépendre d'une relation 1-n concernant les critères :/
 
En tout cas, par rapport à ce que tu demandes et expliques, ta requête est correcte et fait ce que tu veux.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 14-01-2015 à 14:18:44    

antac a écrit :

Je comprends pas, c'est quoi ta combinaison ?
 
Donne nous la composition de ta table et ce que tu attends comme résultat ?
 


La en l’occurrence si c'est AAA ET DDD je le prend pas, par contre si c'étais AAA ET FFF je l'aurais pris.  
 

rufo a écrit :

Déjà, on pourrait étrange de trouver les critères dans la table alors que le couple client/prix semble dépendre d'une relation 1-n concernant les critères :/
 
En tout cas, par rapport à ce que tu demandes et expliques, ta requête est correcte et fait ce que tu veux.


Oui j'ai pas détaillé, c'est une table de facturation en fait  :D  
L'id c'est le numéro de facture, en fait la requête et la table sont beaucoup plus grosse , moi je veux juste rajouter ma condition pour exclure certaines combinaison du calcul.  
 
Merci de confirmer la procédure, d'expérience je sais que mon cerveau fait un blocage la dessus.  :o

Message cité 2 fois
Message édité par stefaninho le 14-01-2015 à 14:26:39

---------------
Et vous, quel est votre Final Fantasy préféré ?  
Reply

Marsh Posté le 14-01-2015 à 14:31:31    

stefaninho a écrit :


La en l’occurrence si c'est AAA ET DDD je le prend pas, par contre si c'étais AAA ET FFF je l'aurais pris.  
 


 

stefaninho a écrit :


Oui j'ai pas détaillé, c'est une table de facturation en fait  :D  
L'id c'est le numéro de facture, en fait la requête et la table sont beaucoup plus grosse , moi je veux juste rajouter ma condition pour exclure certaines combinaison du calcul.  
 
Merci de confirmer la procédure, d'expérience je sais que mon cerveau fait un blocage la dessus.  :o


 
Ce que tu as marqué dans ta requête c'est :
Il faut que crit1='XXX'
Il faut que crit2 soit différent de AAA et de BBB
il faut que crit3 soit différent de CCC et de DDD
 
Crit1,Crit2 et Crit3 sont des restrictions indépendantes l'une de l'autre dans ta requête.
 
Je vois pas trop ce que tu veux faire


Message édité par antac le 14-01-2015 à 14:41:14
Reply

Marsh Posté le 14-01-2015 à 14:32:36    

Même avec les parenthèses ?  
 
Du coup quelle est la bonne syntaxe?


---------------
Et vous, quel est votre Final Fantasy préféré ?  
Reply

Marsh Posté le 14-01-2015 à 14:44:25    

stefaninho a écrit :


La en l’occurrence si c'est AAA ET DDD je le prend pas, par contre si c'étais AAA ET FFF je l'aurais pris.  
 


Alors dans ce cas, ta requête ne marche pas. Fais une table de vérité pour trouver la bonne équation logique ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 14-01-2015 à 14:45:01    

stefaninho a écrit :

Même avec les parenthèses ?  
 
Du coup quelle est la bonne syntaxe?


C'est pas un pb de syntaxe SQL mais de logique (et pas qu'un pb de parenthèses).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 14-01-2015 à 16:21:27    

Je sais Rufo, crois bien que j'y met de la bonne volonté c'est pas la première fois que j'ai ce problème, mais ça veut pas.  :(  
 
Du coup j'ai quand même relu ça :
http://fr.wikipedia.org/wiki/Table_de_v%C3%A9rit%C3%A9
 
Mais y'a pas, je comprend pas.  :fou:


---------------
Et vous, quel est votre Final Fantasy préféré ?  
Reply

Marsh Posté le 14-01-2015 à 16:28:51    

Tu fait un tableau avec tes trois paramètres : crit1, crit2 et crit3
Puis tu fais varier les valeurs de ces 3 critères pour savoir si c'est bon ou pas en fonction des valeurs.
 
Par exemple
 
Crit1 crit2 Crit3 Res
AAA BBB CCC OK
AAA CCC CCC Pas OK
AAA DDD CCC Pas OK
BBB AAA BBB OK
BBB CCC DDD OK
...
 
Faut prendre tous les cas possibles... Parceque là tu es pas clair du tout
 

Reply

Marsh Posté le 14-01-2015 à 16:28:51   

Reply

Marsh Posté le 14-01-2015 à 16:49:52    

Je vais essayer de te faire un énoncé plus clair.  
 
Numéro facture | client | montant | categorie du client | categorie du produit
 
Je veux le montant total en excluant les categorie de produit 001 , 002 chez les categorie de client ZZZ, YYY  
 
Edith : J'aurais pas du prendre le l'alpha pour les deux critères ca prete à confusion en effet donc mon tableau :  
 
001 ZZZ exclu
001 YYY exclu
001 XXX Ok
002 ZZZ exclu
002 YYY exclu
003 ZZZ ok
003 YYY ok
003 XXX ok

Message cité 1 fois
Message édité par stefaninho le 14-01-2015 à 16:53:42

---------------
Et vous, quel est votre Final Fantasy préféré ?  
Reply

Marsh Posté le 14-01-2015 à 16:58:14    

stefaninho a écrit :

Je sais Rufo, crois bien que j'y met de la bonne volonté c'est pas la première fois que j'ai ce problème, mais ça veut pas.  :(  
 
Du coup j'ai quand même relu ça :
http://fr.wikipedia.org/wiki/Table_de_v%C3%A9rit%C3%A9
 
Mais y'a pas, je comprend pas.  :fou:


Pour être précis, pour trouver l'équation booléenne, c'est le tableau de Karnaugh qu'il faut faire : http://fr.wikipedia.org/wiki/Table_de_Karnaugh


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 14-01-2015 à 17:05:34    

Mais c'est si compliqué que ça ce que je demande ?  :sweat:


---------------
Et vous, quel est votre Final Fantasy préféré ?  
Reply

Marsh Posté le 14-01-2015 à 17:13:09    

Ben l'équation booléenne tenant compte de tes critères ne semble pas être triviale quand on voit ton dernier tableau :/
Pour avoir OK, il faut prendre les enregistrements qui contiennent soit :
003
001 et XXX
aucun 002
 
Soit tu exposes mal ton pb, soit les critères de sélection des bons enregistrements à conserver ne sont pas triviaux :/
Ca peut peut-être venir aussi du fait que ta BD est mal structurée (pour le traitement que tu veux faire dans ce cas particulier).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 14-01-2015 à 17:28:11    

J'ai pas l'impression que ce soit compliqué ca doit venir de moi.  
Il manque une entrée à mon tableau.  
002 XXX ok
 
en gros je prends tout les 002 sauf les 002 ZZZ et 002 YYY
 
L'autre solution c'est de calculer le montant que je ne veux pas prendre puis de le soustraire du montant total, mais je voulais un truc plus propre et simple.


---------------
Et vous, quel est votre Final Fantasy préféré ?  
Reply

Marsh Posté le 14-01-2015 à 18:57:26    

stefaninho a écrit :

Je vais essayer de te faire un énoncé plus clair.  
 
Numéro facture | client | montant | categorie du client | categorie du produit
 
Je veux le montant total en excluant les categorie de produit 001 , 002 chez les categorie de client ZZZ, YYY  
 
Edith : J'aurais pas du prendre le l'alpha pour les deux critères ca prete à confusion en effet donc mon tableau :  
 
001 ZZZ exclu
001 YYY exclu
001 XXX Ok
002 ZZZ exclu
002 YYY exclu
003 ZZZ ok
003 YYY ok
003 XXX ok


 
 
WHERE (produit NOT IN ('001','002')) OR (categ NOT IN  ('ZZZ','YYY'))

Reply

Marsh Posté le 14-01-2015 à 19:42:06    

:jap: Vais tester ça demain.  


---------------
Et vous, quel est votre Final Fantasy préféré ?  
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed