Salut! J'ai fais un query qui permet selecter des colonnes des 2 tableaux avec left join.

La requete c'est ok. Voila:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
SELECT tab1.NumarMasina,tab2.DataOraPlecare,tab2.DataOraSosire,tab2.LocalitatePlecare,tab2.LocalitateSosire
 FROM PatrimoniuMasini tab1
left join FoaieParcursMasina tab2 on tab1.IdMasina = tab2.IdMasina


Ce que je veux maintenant c'est integrer cette requete dans une procedure stoque sql server avec 5 parametres (les 5 colonnes affiches du printscreen sont mes parametres). Voila ce que j'ai essaye:
(en liant tableau 1 PatrimoniuMasini avec FoaieParcursMasina tableau3

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
17
18
19
20
21
 
CREATE PROCEDURE Informatii -- creation procedure avec le nom Informatii
 
-- definir les 5 parametres de la procedure stoque
 
@NumarMasina varchar(255),
@DataOraPlecare datetime,
@DataOraSosire datetime,
@LocalitatePlecare varchar(255),
@LocalitateSosire varchar(255)
 
AS -- AS mot reserve suivi par la requete
 
-- maintenant la requete integre dans la procedure stoque
 
SELECT tab1.NumarMasina,tab2.DataOraPlecare,tab2.DataOraSosire,tab2.LocalitatePlecare,tab2.LocalitateSosire
 FROM PatrimoniuMasini tab1
left join FoaieParcursMasina tab2 on tab1.IdMasina = tab2.IdMasina
GO
 
EXEC Informatii 'DB-20-RTS','020207','020207','Targoviste','Bucuresti'
-- supposant qu'on veux tous les voitures(NumarMasina) avec les localiteDepart=
--Targovite donc localiteDepart chez moi c'est LocalitatePlecare colonne
-- et avec la localitearrive donc LocalitateSosire colonne chez moi =Bucuresti



Je vous attache ici pour directement executer la creation des 3 tableaux avec les lignes aferentes. (ou j'ai les DDL des 3 tables il suffit d'appuyer sur executer boutton apres vous avez selectionne tous le fichier):

http://www.4shared.com/file/14841050...ema_final.html

Ou plus simplement copier tout ca dans un New Query de sql server:

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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
 
-- tabela1 PatrimoniuMasini
 
-- numarul masinii este unic -constrangere UNIQUE
 
 
CREATE DATABASE ParcAuto
 
CREATE TABLE PatrimoniuMasini
(
IdMasina int PRIMARY KEY NOT NULL IDENTITY(1,1),
NumarMasina varchar(255) UNIQUE,
PersoanaFolMasina varchar(255),
Utilizator varchar(255)
)
 
 
-- utilizator e firma careia ii apartine automobilul sau l-a inchiriat
 
-- tabela2 TipuriAutomobile
 
CREATE TABLE TipuriAutomobile
(IdTip int PRIMARY KEY NOT NULL,
IdMasina int,
TipAutomobil varchar(255),
CapacitateMotor varchar(255),
CapacitateTransport varchar(255),
TipCombustibil varchar(255),
NormaL100KM decimal(3,2) -- 3 zecimale in total , 2 zecimale dupa virgula
)
 
 
 
-- un numar de masina poate face mai multe drumuri
 
CREATE TABLE FoaieParcursMasina
(IdFoaie int PRIMARY KEY NOT NULL,
DataFoaieParcurs datetime,
IdMasina int,
NumarMasina varchar(255),
DataOraPlecare datetime,
DataOraSosire datetime,
NumeSofer varchar(255),
LocalitatePlecare varchar(255),
LocalitateSosire varchar(255),
KM int,
CombustibilConsumat int, --combustibil consumat =km*normaL100km
MotivDeplasare varchar(255),
MarfaTransportata varchar(255),
Utilizator varchar(255)
)
 
 
--unde DataInregistrarii este data inregistrarii foaie parcurs
 
-- e reprezentata de campul DataFoaieParcurs
 
-- utilizator in tabela FoaieParcursMasina e beneficiarul
--caruia ii transportam marfa conform foii de parcurs
 
 
-- Inserare inregistrari in cele 3 tabele
 
-- in cheia IDENTITY nu se insereaza valori e numerotata automat
 
-- utilizator -nume firma care a inchiriat masina
 
-- inserare inregistrari in tabela 1
 
INSERT INTO PatrimoniuMasini(NumarMasina,PersoanaFolMasina,Utilizator)
VALUES ('DB-20-RTS','Popescu George','Cimentul Fieni');
 
INSERT INTO PatrimoniuMasini(NumarMasina,PersoanaFolMasina,Utilizator)
VALUES ('DB-03-STR','Popescu Cosmin','Cimentul Fieni');
 
INSERT INTO PatrimoniuMasini(NumarMasina,PersoanaFolMasina,Utilizator)
VALUES ('DB-02-SPR','Georgescu Ionel','Cimentul Fieni');
 
INSERT INTO PatrimoniuMasini(NumarMasina,PersoanaFolMasina,Utilizator)
VALUES ('CJ-02-MIH','Ionascu Paul','SC Materiale Constructii Cluj');
 
INSERT INTO PatrimoniuMasini(NumarMasina,PersoanaFolMasina,Utilizator)
VALUES ('CJ-06-ION','Ion Paul','SC Materiale Constructii Cluj');
 
INSERT INTO PatrimoniuMasini(NumarMasina,PersoanaFolMasina,Utilizator)
VALUES ('CJ-05-TIZ','Pricop George','SC Materiale Constructii Cluj');
 
INSERT INTO PatrimoniuMasini(NumarMasina,PersoanaFolMasina,Utilizator)
VALUES ('GL-08-FIT','Pricop Cristian','SC Materiale Constructii Galati');
 
INSERT INTO PatrimoniuMasini(NumarMasina,PersoanaFolMasina,Utilizator)
VALUES ('GL-28-TIO','Enache Florin','SC Materiale Constructii Galati');
 
INSERT INTO PatrimoniuMasini(NumarMasina,PersoanaFolMasina,Utilizator)
VALUES ('GL-24-CAR','Enache Cosmin','SC Materiale Constructii Galati');
 
INSERT INTO PatrimoniuMasini(NumarMasina,PersoanaFolMasina,Utilizator)
VALUES ('GL-19-RAC','Mihai Paul','SC Materiale Constructii Galati');
 
-- inserare inregistrari in tabela2
 
 
INSERT INTO TipuriAutomobile(IdTip,IdMasina,TipAutomobil,CapacitateMotor,CapacitateTransport,TipCombustibil,NormaL100KM)
VALUES(1,1,'auto-cisterna','340kw','9000kg','motorina',8.93); 
 
INSERT INTO TipuriAutomobile(IdTip,IdMasina,TipAutomobil,CapacitateMotor,CapacitateTransport,TipCombustibil,NormaL100KM)
VALUES(2,2,'camion','320kw','7000kg','benzina',9.09); 
 
INSERT INTO TipuriAutomobile(IdTip,IdMasina,TipAutomobil,CapacitateMotor,CapacitateTransport,TipCombustibil,NormaL100KM)
VALUES(3,3,'auto-utilitara','300kw','8500kg','GPL',9.59); 
 
INSERT INTO TipuriAutomobile(IdTip,IdMasina,TipAutomobil,CapacitateMotor,CapacitateTransport,TipCombustibil,NormaL100KM)
VALUES(4,4,'basculanta','290kw','5500kg','benzina',8.83); 
 
 
-- inserare inregistrari in tabela3
 
 
-- Beneficiar este campul utilizator din tabela FoaieParcursMasina
 
-- campul Combustibil consumat valori introduse prin calcul km*norma100km
 
-- un sofer poate avea mai multe foi de parcurs intr-o luna
 
--format datetime: an/luna/zi primele 2 cifre anul, urmatoarele 2 luna si 2 cifre zi
 
 
INSERT INTO FoaieParcursMasina(IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,NumeSofer,LocalitatePlecare,LocalitateSosire,KM,MotivDeplasare,MarfaTransportata,Utilizator)
VALUES(001,'060207 ',1,'DB-20-RTS','020207 9:32:35','020207 11:20:32','Popescu George','Targoviste','Bucuresti',110,'transport marfa','ciment','Materiale Constructii Bucuresti ');
 
 
INSERT INTO FoaieParcursMasina(IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,NumeSofer,LocalitatePlecare,LocalitateSosire,KM,MotivDeplasare,MarfaTransportata,Utilizator)
VALUES(002,'090407 ',2,'DB-20-RTS','040407 9:21:20','040407 11:51:42','Popescu George','Targoviste','Medgidia',140,'transport marfa','ciment','Cimentul Medgidia');
 
INSERT INTO FoaieParcursMasina(IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,NumeSofer,LocalitatePlecare,LocalitateSosire,KM,MotivDeplasare,MarfaTransportata,Utilizator)
VALUES(003,'120807 ',3,'DB-02-SPR','040807 9:21:20','040807 11:51:42','Popescu Cosmin','Targoviste','Bucuresti',110,'transport marfa','fier beton','Materiale Constructii Bucuresti ');
 
INSERT INTO FoaieParcursMasina(IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,NumeSofer,LocalitatePlecare,LocalitateSosire,KM,MotivDeplasare,MarfaTransportata,Utilizator)
VALUES(004,'130807 ',4,'DB-02-SPR','060807 9:21:20','060807 11:51:42','Georgescu Ionel','Targoviste','Bucuresti',110,'transport marfa','fier beton','Materiale Constructii Bucuresti ');
 
INSERT INTO FoaieParcursMasina(IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,NumeSofer,LocalitatePlecare,LocalitateSosire,KM,MotivDeplasare,MarfaTransportata,Utilizator)
VALUES(005,'150807 ',5,'DB-02-SPR','070807 10:30:20','070807 12:51:42','Ionascu Paul','Targoviste','Bucuresti',110,'transport marfa','fier beton','Materiale Constructii Bucuresti ');
 
 
INSERT INTO FoaieParcursMasina(IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,NumeSofer,LocalitatePlecare,LocalitateSosire,KM,MotivDeplasare,MarfaTransportata,Utilizator)
VALUES(006,'180807 ',6,'DB-03-STR','110807 10:30:20','110807 12:51:42','Ion Paul','Targoviste','Medgidia',140,'transport marfa','ciment','Cimentul Medgidia');
 
INSERT INTO FoaieParcursMasina(IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,NumeSofer,LocalitatePlecare,LocalitateSosire,KM,MotivDeplasare,MarfaTransportata,Utilizator)
VALUES(007,'180807 ',7,'GL-08-FIT','130807 10:30:20','130807 12:51:42','Pricop George','Targoviste','Medgidia',140,'transport marfa','ciment','Cimentul Medgidia');
 
INSERT INTO FoaieParcursMasina(IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,NumeSofer,LocalitatePlecare,LocalitateSosire,KM,MotivDeplasare,MarfaTransportata,Utilizator)
VALUES(008,'200807 ',8,'GL-08-FIT','140807 10:30:20','140807 12:51:42','Pricop Cristian','Targoviste','Medgidia',140,'transport marfa','ciment','Cimentul Medgidia');
 
 
INSERT INTO FoaieParcursMasina(IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,NumeSofer,LocalitatePlecare,LocalitateSosire,KM,MotivDeplasare,MarfaTransportata,Utilizator)
VALUES(009,'250807 ',9,'GL-24-CAR','170807 10:30:20','170807 12:51:42','Enache Florin','Targoviste','Medgidia',140,'transport marfa','ciment','Cimentul Medgidia');
 
 
INSERT INTO FoaieParcursMasina(IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,NumeSofer,LocalitatePlecare,LocalitateSosire,KM,MotivDeplasare,MarfaTransportata,Utilizator)
VALUES(010,'250807 ',10,'GL-24-CAR','170807 10:30:20','170807 12:51:42','Mihai Paul','Targoviste','Medgidia',140,'transport marfa','ciment','Cimentul Medgidia');
 
-- tabela 4 DatePtFoiParcurs adaugare inreg la completare formular
 
INSERT INTO FoaieParcursMasina(IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,NumeSofer,LocalitatePlecare,LocalitateSosire,KM,MotivDeplasare,MarfaTransportata,Utilizator)
VALUES(011,'20070825',11,'GL-24-CAR','20070807 10:30:20','20070817 12:51:42','Mihai Paul','Targoviste','Medgidia',140,'transport marfa','ciment','Cimentul Medgidia');
 
--Numar masina in tabela foaie parcurs masini
 
SELECT * FROM PatrimoniuMasini
 
SELECT * FROM TipuriAutomobile
 
SELECT * FROM FoaieParcursMasina
 
 
 
 
 
--query cu informatii despre numarmasina,perioade,plecare,destinatie
 
SELECT tab1.NumarMasina,tab2.DataOraPlecare,tab2.DataOraSosire,tab2.LocalitatePlecare,tab2.LocalitateSosire
 FROM PatrimoniuMasini tab1
left join FoaieParcursMasina tab2 on tab1.IdMasina = tab2.IdMasina
--WHERE DataOraPlecare = '200708 10:30:20' AND DataOraSosire = '200708 12:51:42' AND LocalitatePlecare='Targoviste' AND LocalitateSosire='Medgidia'
 
-- procedura stocata cu informatii numarmasina,perioada,plecare,destinatie
 
CREATE PROCEDURE Informatii -- creation procedure avec le nom Informatii
 
-- definir les 5 parametres de la procedure stoque
 
@NumarMasina varchar(255),
@DataOraPlecare datetime,
@DataOraSosire datetime,
@LocalitatePlecare varchar(255),
@LocalitateSosire varchar(255)
 
AS -- AS mot reserve suivi par la requete
 
-- maintenant la requete integre dans la procedure stoque
 
SELECT tab1.NumarMasina,tab2.DataOraPlecare,tab2.DataOraSosire,tab2.LocalitatePlecare,tab2.LocalitateSosire
 FROM PatrimoniuMasini tab1
left join FoaieParcursMasina tab2 on tab1.IdMasina = tab2.IdMasina
GO
 
EXEC Informatii 'DB-20-RTS','020207','020207','Targoviste','Bucuresti'
Ce que je ne sais pas c'est comment creer une procedure stoque avec les 5 champs affiche (donc une procedure stoque avec 5 parametres qui liste des informations selon les 5 parametres en partant de la requete au-dessus).


Donc j'essaye de creer une procedure stoque qui liste des informations en ayant 5 parametres (NumarMasina(tableau PatrimoniuMasini),DataOraPlecare,DataOraSosire,LocalitatePlecare,LocalitateSosire du tableau FoaieParcursMasini). ca c'est la consigne de ma procedure stoque. Le probleme c'est que je ne sais pas si j'ai bien fais la procedure stoque en partant de la consigne en bold.