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
A voir également:
- Question SQL
- Logiciel sql - Télécharger - Bases de données
- Requete sql pix ✓ - Forum MySQL
- Sql lister les tables ✓ - Forum Programmation
- Récupération serveur sql - Télécharger - Gestion de données
- Migration base access vers sql server - Télécharger - Gestion de données
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
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.
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.
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 !
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;