Salut à tous je travaille sur un outil de synthèse pour aider le SAV d'une entreprise de fabrication de pièce d'avion.
Pour ca je dois pouvoir récupérer les informations relative à une pièce qui sont disséminées sur plusieurs tables SQL (SQL Server Management Studio sous Windaube)
qui sont pas méga propres ( pas de vrai clé primaire, des données qui correspondent pas forcément d'une table à une autre etc,etc)
Du coup j'ai décidé de me faire une table avec tout ce que je peut regrouper ensemble
Voila comment je m'y prend au début pour créer ma table
Voila ce que je fais ensuite pour récupérer la réference des pièces, leur numéros de vente (Sales Order ou SO)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 CREATE TABLE [PARADEMODW].[dbo].[EXTRACT_CR] ( Part_No NVARCHAR(25) NOT NULL, Supplier NVARCHAR(25), SO_No NVARCHAR(25), SO_Line_No INT, Due_Date datetime2, Invoice_No INT, Delivery_Note_No INT, Release_Note_No NVARCHAR(25), Purchase_Order_No NVARCHAR(25), Work_Order_No NVARCHAR(25), GRN_No NVARCHAR(25), MSN_No NVARCHAR(25) )
et la ligne de vente du Sale Order (SO_Line_No). Et la date accesoirement
Ces trois informations ENSEMBLE constitue ce qui se rapproche le plus d'une clé primaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 INSERT INTO [PARADEMODW].[dbo].[EXTRACT_CR] (Part_No, SO_No, SO_Line_No, Due_Date) SELECT Part_No, SO_No, SO_Line_No, Due_Date FROM [PARADEMODW].[dbo].[SO_Items];
Le soucis c'est lorsque je vais récuperer dans une deuxième table la Release Note, Delivery Note et le numéro de facture (Invoice)
Voila ce que j'ai fait avec en commentaire des pistes que j'ai trouvé sur d'autre discussions mais qui n'ont pas arrangé mon problème
Le soucis c'est que je me tape ce message d'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 UPDATE [PARADEMODW].[dbo].[EXTRACT_CR]/*, [PARADEMODW].[dbo].[Invoice_Detail] */ SET [PARADEMODW].[dbo].[EXTRACT_CR].[Invoice_No] = [PARADEMODW].[dbo].[Invoice_Detail].[Invoice_No], [PARADEMODW].[dbo].[EXTRACT_CR].[Delivery_Note_No] = [PARADEMODW].[dbo].[Invoice_Detail].[Del_Note_No], [PARADEMODW].[dbo].[EXTRACT_CR].[Release_Note_No] = [PARADEMODW].[dbo].[Invoice_Detail].[Release_Note_No] /*FROM [PARADEMODW].[dbo].[EXTRACT_CR] , [PARADEMODW].[dbo].[Invoice_Detail] */ WHERE [PARADEMODW].[dbo].[EXTRACT_CR].[Part_No] = [PARADEMODW].[dbo].[Invoice_Detail].[Part] AND [PARADEMODW].[dbo].[EXTRACT_CR].[SO_No] = [PARADEMODW].[dbo].[Invoice_Detail].[SO] AND [PARADEMODW].[dbo].[EXTRACT_CR].[SO_Line_No] = [PARADEMODW].[dbo].[Invoice_Detail].[Line_No]
Msg*4104, Niveau*16, État*1, Ligne*6
L'identificateur en plusieurs parties "PARADEMODW.dbo.Invoice_Detail.Part" ne peut pas être lié.
Msg*4104, Niveau*16, État*1, Ligne*7
L'identificateur en plusieurs parties "PARADEMODW.dbo.Invoice_Detail.SO" ne peut pas être lié.
Msg*4104, Niveau*16, État*1, Ligne*8
L'identificateur en plusieurs parties "PARADEMODW.dbo.Invoice_Detail.Line_No" ne peut pas être lié.
Est ce que ça veut dire que je dois faire un SELECT entre parenthèse a la place de juste ça "PARADEMODW.dbo.Invoice_Detail.Line_No"?
Si oui comment ? Parce que tout ce que j'ai fait a pas eu l'air de fonctionner ?
Merci d'avance aux braves qui me répondront.
Garder le feu brûlant dans votre cœur
Partager