Bonjour a tous!
J'ai 3 tableaux voila le DDL:
Les lignes sont inserees avec INSERT INTO.
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 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) )
Consigne requete:
Je veux lister la moyenne du combustible(AVG(CombustibilConsumat) ) consomme d'une periode(la periode est represente par 2 colonnes DataOraSosire et DataOraPlecare) groupes par types d'automobiles (c'est IdTip) et type du combustible (colonne TipCombustibil)
Je veux la moyenne du combustibleconsomme donc AVG sur la colonne nomme CombustibilConsumat .(GROUP BY IdTip et TipCombustibil).
J'ai essaye comme ca:
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 SELECT tab1.DataOraPlecare,tab1.DataOraSosire,tab2.IdTip,tab2.TipCombustibil, x.MoyenneCombustible FROM FoaieParcursMasina tab1 GROUP BY tab1.DataOraPlecare,tab1.DataOraSosire left join ( SELECT IdMasina,AVG(CombustibilConsumat) As MoyenneCombustible FROM FoaieParcursMasina GROUP BY IdMasina ) x on x.IdMasina = tab1.IdMasina left join TipuriAutomobile tab2 on tab1.IdMasina = tab2.IdMasina -- idtip unic ok, tipcombustibil unic ok, media pe fiecare tip combustibil?? -- je veux la moyenne du combustible d'une periode la periode est represente par les champs DataOraPlecare et DataOraSosire WHERE DataOraPlecare >'1/1/2005' AND DataOraPlecare<'12/12/2009' AND DataOraSosire >'1/1/2005' AND DataOraSosire<'12/12/2009' GROUP BY tab2.IdTip,tab2.TipCombustibil
tab1 - alias pour table FoaieParcursMasina
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Msg 156, Level 15, State 1, Line 7 Incorrect syntax near the keyword 'left'. Msg 102, Level 15, State 1, Line 11 Incorrect syntax near 'x'.
tab2- alias pour table TipuriAutomobile.
TipAutomobil -colonne qui represente le nom du type d'automobile.
IdTip - cle primaire qui identifie uniquement table TipuriAutomobile.
IdFoaie- cle primaire table FoaieParcursMasina
CombustibilConsumat - colonne qui represente la valeur du combustible consomme.
Partager