Question SQL
Djo
-
rasta67 -
rasta67 -
Bonjour,
J'ai une tâche à faire et je me demande comment faire ^^.
En effet je possède 2 tables sous Access :
FACTURE (Num_Fact, Date_fact...)
DETAIL_FACTURE ( Num_Det, montant, Num_Fact...)
Le lien ce fait par FACTURE.Num_Fact = DETAIL_FACTURE.Num_Fact. Jusqu'ici rien de compliqué.
Le problème est que je dois prévoir la migration de ces 2 tables dans un ERP que l'entreprise va acheté. En me penchant sur les données stockées dans les tables je me suis aperçu que les numéros de facture (Num_Fact) était assez spéciaux (ex : F1234, F1234_2, I234..). Or, dans le futur ERP les numéros sont du type int. J'ai donc rajouté un champs ID_Fact dans la table Facture en NuméroAUto, ceci afin qu'il m'auto-complète sans doublons le champs ID.
Il faut donc maintenant que je rajoute un champs ID_Facture dans ma table DETAIL_FACTURE pour faire le lien avec ID_Facture. Le problème c'est qu'il faut je complète cette colonne en fonction des Num_Fact, de manière a avoir la même concordance des champs ID_Fact et Num_Fact dans les 2 tables.
Ainsi à la fin le lien se fera par : FACTURE.ID_fact = DETAIL_FACTURE.ID_fact.
Quelles sont les solutions qui s'ouvre a moi sachant que je ne suis pas un grand développeur. Est-ce faisable avec une requête sql ?
Merci par avance
J'ai une tâche à faire et je me demande comment faire ^^.
En effet je possède 2 tables sous Access :
FACTURE (Num_Fact, Date_fact...)
DETAIL_FACTURE ( Num_Det, montant, Num_Fact...)
Le lien ce fait par FACTURE.Num_Fact = DETAIL_FACTURE.Num_Fact. Jusqu'ici rien de compliqué.
Le problème est que je dois prévoir la migration de ces 2 tables dans un ERP que l'entreprise va acheté. En me penchant sur les données stockées dans les tables je me suis aperçu que les numéros de facture (Num_Fact) était assez spéciaux (ex : F1234, F1234_2, I234..). Or, dans le futur ERP les numéros sont du type int. J'ai donc rajouté un champs ID_Fact dans la table Facture en NuméroAUto, ceci afin qu'il m'auto-complète sans doublons le champs ID.
Il faut donc maintenant que je rajoute un champs ID_Facture dans ma table DETAIL_FACTURE pour faire le lien avec ID_Facture. Le problème c'est qu'il faut je complète cette colonne en fonction des Num_Fact, de manière a avoir la même concordance des champs ID_Fact et Num_Fact dans les 2 tables.
Ainsi à la fin le lien se fera par : FACTURE.ID_fact = DETAIL_FACTURE.ID_fact.
Quelles sont les solutions qui s'ouvre a moi sachant que je ne suis pas un grand développeur. Est-ce faisable avec une requête sql ?
Merci par avance
7 réponses
-
salut,
oui fais un auto increment pour une des deux tables,
ensuite tu crées colonne int pour la 2ème, fais un update de la 2ème table
update 2éme table set table2.ID=table1.ID where table2.Num_Fact=table1.Num_Fact
je suis pas expert en sql mais ça devrait aller -
ça a pas l'air de marcher :
update DETAIL set DETAIL.ID_FACT=FACTURE.ID_FACT where DETAIL.NUM_FACT=FACTURE.NUM_FACT;
Access me renvoie la fenêtre de type : Entrez une valeur de paramètre : FACTURE.ID_FACT. J'ai vérifieé tout les champs, et les tables. -
et ça :
update DETAIL D set ID_FACT=(SELECT FACTURE.ID_FACT where D.NUM_FACT=FACTURE.NUM_FACT); -
Toujours un problème :
update DETAIL set ID_FACT= (SELECT FACTURE.ID_FACT FROM FACTURE, DETAIL where DETAIL.NUM_FACT=FACTURE.NUM_FACT);
Il me dit : L'opération doit utiliser une requête qui peut être mise à jour.
Il nous tient tête lol ! -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
update DETAIL set ID_FACT= (SELECT FACTURE.ID_FACT FROM FACTURE) WHERE DETAIL.NUM_FACT=FACTURE.NUM_FACT;
-
Ne marche pas sous Access, j'ai migré la table sur SQl SERVER et réessayé avec la même requête, fonctionne nickel.
Merci ;) -