|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||||||
|
Débutant
Jérémy Développeur Web Inscription : octobre 2006 Messages : 1 094 ![]() |
Bonjour,
J'essaie de copier la colonne T1.tarif vers la colonne T3.total_a_payer Requête Table A Code :
Code :
Code :
Voici un aperçu de la requête Table B : Citation:
Après pas mal de tests d'UPDATE, je n'y arrive pas Merci d'avance. |
|||||||
|
|
00
|
|
|
#2 | ||
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
bonjour
Utilises une syntaxe du type Code :
Mais pourquoi avoir cette colonne "total_a_payer", alors qu'une requête te fournis le résultat à la volée ? |
||
|
|
00
|
|
|
#3 | |||
![]() ![]() |
Euh... petite erreur dans ta requête il me semble Olivier !
Je ferais plutôt comme ça : Code :
Citation:
Tu comptes additionner les numéros de facture ? Tout ce qui est numéro, référence, matricule, code... ne faisant jamais l'objet de calculs doit être mis dans des colonnes CHAR ou VARCHAR !
__________________
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
|
|
|
#4 |
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
oups
ah oui joli (je ne dois pas être du matin |
|
|
00
|
|
|
#5 | ||||
|
Débutant
Jérémy Développeur Web Inscription : octobre 2006 Messages : 1 094 ![]() |
Citation:
Citation:
|
||||
|
|
00
|
|
|
#6 | |
|
Débutant
Jérémy Développeur Web Inscription : octobre 2006 Messages : 1 094 ![]() |
Citation:
![]() Je reprends à la base. Notre base datawarehouse est issu de notre ERP. Le champ du numéro de facture est un entier. Nous avons donc laissé les types de donnée par défaut... Mais effectivement, je suis d'accord avec toi. Dans ma base de travail, ce champ est bien un VARCHAR
|
|
|
|
00
|
|
|
#7 | ||||
|
Débutant
Jérémy Développeur Web Inscription : octobre 2006 Messages : 1 094 ![]() |
Citation:
Citation:
|
||||
|
|
00
|
|
|
#8 | ||||||
![]() ![]() |
Je pense que c'est dû au fait que j'ai utilisé l'alias T3 de ta seconde requête au lieu du nom de la table facture_entete !
Correction : Code :
Code :
Citation:
Citation:
__________________
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
|
|
|
#9 |
|
Débutant
Jérémy Développeur Web Inscription : octobre 2006 Messages : 1 094 ![]() |
JD Edwards sous AS400.
|
|
|
00
|
|
|
#10 | ||
|
Débutant
Jérémy Développeur Web Inscription : octobre 2006 Messages : 1 094 ![]() |
Merci pour les explications.
Cependant c'est assez bizarre... avec ou sans le AS, SQL server ne reconnait pas l'UPDATE. Avec les 2 AS : Citation:
Citation:
|
||
|
|
00
|
|
|
#11 | ||
![]() ![]() |
Ça voudrait dire que SQL Server n'autorise pas les alias dans les UPDATE ?
Ou même les jointures car alors je ne vois pas comment faire avec la sous-requête ! Ou alors essaie comme ça avec des données test : Code :
__________________
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
|
|
|
#12 |
|
Membre confirmé
![]() Développeur informatique Inscription : octobre 2006 Messages : 181 ![]() |
C'est peut etre plutot comme SYBASE qui n'autorise pas les tables dérivées dans le where d'un update
|
|
|
00
|
|
|
#13 | |||
![]() ![]() |
On peut déjà commencer par la version simple :
Code :
Citation:
En ce qui concerne les numéros de factures (ou les identifiants au sens large), de très nombreuses applications les gèrent avec des entiers auto-incrémentés. Il n'y a alors aucune raison de les transformer en varchar, même si on ne va pas faire d'opération mathématique dessus : ça consomme plus de place, ça réduit la performance des index, ça oblige à des conversions forcément coûteuses.
__________________
Email : http://scr.im/waldar |
|||
|
10
|
|
|
#14 | ||||
|
Débutant
Jérémy Développeur Web Inscription : octobre 2006 Messages : 1 094 ![]() |
Citation:
Citation:
|
||||
|
|
00
|
|
|
#15 | |
![]() ![]() |
Citation:
"Allo, vous avez fait une grosse erreur sur la facture 8225 ! Il y a un zéro en trop ! - Oups, Effectivement ! Je vous corrige ça et je vous renvoie une facture 8225/A qui annule et remplace la 8225." =>Impossible en utilisant l'identifiant auto-incrémenté comme numéro de facture. "On doit intégrer dans notre ERP les données de gestion de la nouvelle filiale que le patron vient d'acheter. Problème : ils ont les mêmes numéros de factures que nous. Comment on fait ?" =>Impossible en utilisant l'identifiant auto-incrémenté comme numéro de facture. "On doit intégrer dans notre ERP les données de gestion de la nouvelle filiale que le patron vient d'acheter. Problème : ils ont des numéros de factures alphanumériques. Comment on fait ?" =>Impossible en utilisant l'identifiant auto-incrémenté comme numéro de facture. Je pourrais sans doute multiplier les exemples... Le corollaire de l'article de SQLPro sur les clés auto-incrémentées est que celles-ci ne doivent servir que de clés primaires et être référencées dans les clés étrangères. Rien d'autre !
__________________
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 ! |
|
|
10
|
|
|
#16 | ||||
|
Débutant
Jérémy Développeur Web Inscription : octobre 2006 Messages : 1 094 ![]() |
Citation:
J'ai rajouté un WHERE pour ne pas mettre jour à chaque fois Code :
WHERE Facture_Entete.total_a_payer = '' Citation:
Les identifiants entier permet de simplifier le développement (pas de test si existe déjà, index...), c'est vrai mais peut brider l'application si un imprévu arrive (exemples déjà cités) De plus, tu trouveras le numéro de facture par exemple "122". 5 ans après tu trouveras une facture "8751874". Trop de différence en nombre de caractère... Pour ma part, un numéro avec préfixe + date + heure + incrément sur 3 ou 4 digits permet d'avoir toujours la même structure (BL201109150002, permet d'avoir aussi des infos sans même interroger l'ERP) |
||||
|
|
00
|
|
|
#17 | |
![]() ![]() |
Citation:
Oui, je n'ai aucun problème avec ceci à condition que ce ne soit pas ce code qui soit référencé dans les autres tables.
__________________
Email : http://scr.im/waldar |
|
|
00
|
|
|
#18 | |
|
Débutant
Jérémy Développeur Web Inscription : octobre 2006 Messages : 1 094 ![]() |
Citation:
|
|
|
|
00
|
|
|
#19 | |
![]() ![]() |
Citation:
Or, justement, ce que je critique, c'est qu'il semble bien que nous soyons ici en présence d'un identifiant auto-incrémenté qui sert de numéro de facture physique.
__________________
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