|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
Bonjour,
J'ai les tables suivantes : PRO (produit) codsoc (société) codpro (code produit) codzn15 (code produit stock) coduni (code unité) PRC (assortiment client) codsoc (société) typtie (type de tiers) sigfou (sigle du tiers) codpro (code produit) codzn2 (code produit à préparer) Le lien est le suivant : Pour un même CODSOC, pour TYPTIE = 'CLI', on a dans PRC la liste des CODPRO produits disponibles à la vente pour le client SIGFOU. Le PRC.CODZN2 est le produit à préparer dans le camion lorsque le client commande le produit. Le PRO.CODZN15 est le produit stock. L'unité d'un produit est PRo.CODUNI. Par exemple : - Je stock du lait en palettes (PRO.CODZN15) - Je le gère dans mon article sous forme de bouteilles de 1 litre (PRO.CODPRO et PRC.CODPRO) - Le client me l'achète en pack de 6 bouteilles (PRC.CODZN2) Maintenant, j'ai la demande suivante, pour une application de prévisions de vente : On doit faire des prévisions de vente sur le produit à préparer, sauf si ce dernier est un colis ou unité, à ce moment on prend le produit stock. Le produit est retourné sans la première lettre. Pour savoir si une unité est acceptable pour l'outils de prévisions de vente, il faut que : - Soit l'unité commence par P, B ou D et qu'elle soit différente de PI PRC.CODZN2 n'est pas toujours rempli, à ce moment je dois prendre PRO.CODZN15 Le produit n'est pas forcément assorti chez le client (il y a d'autres tables qui jouent dans la requête, et je peux avoir des produits qui ne sont pas dans PRC, à ce moment je dois prendre PRO.CODZN15 J'ai donc fait cette requête (Oracle, désolé pour la syntaxe DECODE) : Code :
Vous voyez une solution magique pour simplifier la chose ? |
||
|
|
00
|
|
|
#2 | ||||
![]() ![]() |
Ne connaissant pas encore l'idiôme Oracle, je vais juste répondre sur ce que je ferais sur ça :
Citation:
Code :
Citation:
Code :
SUBSTRING(la_colonne FROM 2 FOR (CHARACTER_LENGTH(la_colonne) - 1))
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||||
|
01
|
|
|
#3 |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
Hmmm, en effet, c'est pas plus compliqué que ça... Et ça simplifie le DECODE, qui est pas très lisible...
Je vais voir dans quelle mesure je peux implémenter la restriction dans le WHERE. |
|
|
00
|
|
|
#4 |
![]() ![]() |
Non, c'est la fonction SUBSTR.
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() Laure Consultante en Business Intelligence Inscription : avril 2007 Messages : 983 ![]() |
@CinePhil : Par curiosité il n'est pas mieux d'utiliser un LIKE et NOT LIKE dans le where plutôt qu'un SUBSTR ?
Code :
__________________
~ Lola ~ Ne pas oublier : et aussi :
|
||
|
|
10
|
|
|
#6 | |
|
Membre Expert
![]() Laure Consultante en Business Intelligence Inscription : avril 2007 Messages : 983 ![]() |
Citation:
__________________
~ Lola ~ Ne pas oublier : et aussi :
|
|
|
|
00
|
|
|
#7 | |||
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
Citation:
Alors que je ne suis pas sûr du tout que SUBSTR (même s'il commence au caractère 1) puisse le faire. D'autant que je trouve bien plus lisible un LIKE qu'un SUBSTR, qui demande à lire à la fois la chaîne recherchée et l'endroit de la recherche. |
|||
|
|
00
|
|
|
#8 |
![]() ![]() |
Effectivement, le LIKE est plus simple et probablement plus performant pour la raison évoquée par stringbuilder.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
Copyright © 2000-2012 - www.developpez.com