IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Produit des 2 colonnes


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut Produit des 2 colonnes
    J'ai 2 tableaux je vous donne le DDL pour copier en SQL Server et avoir de chances de m'aider pour realiser un calcul entre 2 colonnes des 2 tableaux differents:

    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
     
    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
    )
     
     
    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)
    )
     
     
     
    -- then we insert lines in both tables
     
    INSERT INTO TipuriAutomobile& #40;IdTip,IdMasina,TipAutomobil,CapacitateMotor,CapacitateTransport,TipCombustib
    il,NormaL100KM)
    VALUES(1,1,'auto-cisterna','340kw','9000kg','motorina',8.93);
     
    INSERT INTO TipuriAutomobile& #40;IdTip,IdMasina,TipAutomobil,CapacitateMotor,CapacitateTransport,TipCombustib
    il,NormaL100KM)
    VALUES(2,2,'camion','320kw','7000kg','benzina',9.09);
     
    INSERT INTO TipuriAutomobile& #40;IdTip,IdMasina,TipAutomobil,CapacitateMotor,CapacitateTransport,TipCombustib
    il,NormaL100KM)
    VALUES(3,3,'auto-utilitara','300kw','8500kg','GPL',9.59);
     
    INSERT INTO TipuriAutomobile& #40;IdTip,IdMasina,TipAutomobil,CapacitateMotor,CapacitateTransport,TipCombustib
    il,NormaL100KM)
    VALUES(4,4,'basculanta','290kw','5500kg','benzina',8.83);
     
     
     
     
    INSERT INTO FoaieParcursMasina& #40;IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,N
     umeSofer,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& #40;IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,N
     umeSofer,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& #40;IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,N
     umeSofer,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& #40;IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,N
     umeSofer,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& #40;IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,N
     umeSofer,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& #40;IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,N
     umeSofer,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& #40;IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,N
     umeSofer,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& #40;IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,N
     umeSofer,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& #40;IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,N
     umeSofer,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& #40;IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,N
     umeSofer,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& #40;IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,N
     umeSofer,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');
     
     
    SELECT * FROM TipuriAutomobile
     
    SELECT * FROM FoaieParcursMasina
    Comme vous observez dans tableau FoaieParcursMasina le champ (la colonne) CombustibilConsumat n'a pas des valeurs parce que je ne voulais pas inserer avec INSERT INTO dans cette colonne.

    Mon souci c'est que je veux faire un calcul dans la colonne CombustibilConsumat.

    CombustibilConsumat=NormaL100KM*KM

    ou NormaL100KM est une colonne du tableau TipuriAutomobile et KM est une colonne du tableau FoaieParcursMasina.

    Je veux faire pour chaque ligne le calcul NormaL100KM*KM est qu'on complete les valeurs automatiquement dans le champ CombustibilConsumat du tableau nomme FoaieParcursMasina.

    Est-il possible de faire ce calcul dans un SELECT (une requete)?

    Si oui comment faire?

    Pour chaque type d'automobil (c'est TipAutomobil champ dans le tableau nomme TipuriAutomobile avec mes notations) , j'ai une cantitte d'essence ou de combustible consomme specifie par une valeur dans le champ NormaL100KM.

    Je veux faire le calcul NormaL100KM*km pour chaque valeur est stoquer le resultat automatiquement dans la colonne CombustibilConsumat.

    Ayant tout ca pris en compte j'ai l'impression que je dois avoir aussi le champ TipAutomobil(pour le type automobile parce que chaque automobile a une norme du consomme du combustible represente par NormaL100KM champ) et je crois que je dois mettre la colonne TipAutomobil aussi dans le tableau FoaieParcursMasina.

    J'attends votre avis svp! Je ne suis pas sur que c'est ca pour pouvoir faire le calcul entre les 2 colonnes (NormaL100KM *KM et stoquer automatiquement le resultat dans la colonne CombustibilConsumat qui represente le consomme du combustible.)

    Le probleme de comprendre ce que je dois faire je l'ai fais mais j'ai des problemes en implementant ca dans sql server.

    J'ai essaye de faire dans un select le calcul comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT tab1.NormaL100KM *tab2.KM AS Calcul
    FROM TipuriAutomobile tab1
    left join FoaieParcursMasina tab2 on tab1.IdMasina = tab2.IdMasina
    Mais le resultat alias nomme Calcul je veux qu'il soit complete dans la colonne CombustibilConsumat ou je n'ai pas des valeurs (la colonne CombustibilConsumat a tous les lignes NULL ).

    Est on complete cette colonne avec le calcul au dessus mais je ne sais pas comment.

    Ca fait bien le calcul je dois avoir 11 lignes dans TipuriAutomobile comme dans FoaieParcursMasina?

    Je veux que le resultat soit performe dans la colonne CombustibilConsumat du tableau FoaieParcursMasina et que je vois puis les resultat dans cette colonne quand je fais pour la deuxieme fois:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM FoaieParcursMasina

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Je ne suis pas certain d'avoir tout compris, mais je crois que vous voulez faire ceci :
    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
    UPDATE FPM
    SET FPM.CombustibilConsumat = TPA.NormaL100KM * FPM.KM
    FROM
        dbo.FoaieParcursMasina AS FPM
        INNER JOIN dbo.TipuriAutomobile AS TPA
          ON TPA.IdMasina = FPM.IdMasina;
     
    SELECT * FROM dbo.FoaieParcursMasina;
     
    1	2006-02-07 00:00:00.000	1	DB-20-RTS	2002-02-07 09:32:35.000	2002-02-07 11:20:32.000	Popescu George	Targoviste	Bucuresti	110	982	transport marfa	ciment		Materiale Constructii Bucuresti 
    2	2009-04-07 00:00:00.000	2	DB-20-RTS	2004-04-07 09:21:20.000	2004-04-07 11:51:42.000	Popescu George	Targoviste	Medgidia	140	1272	transport marfa	ciment		Cimentul Medgidia
    3	2012-08-07 00:00:00.000	3	DB-02-SPR	2004-08-07 09:21:20.000	2004-08-07 11:51:42.000	Popescu Cosmin	Targoviste	Bucuresti	110	1054	transport marfa	fier beton	Materiale Constructii Bucuresti 
    4	2013-08-07 00:00:00.000	4	DB-02-SPR	2006-08-07 09:21:20.000	2006-08-07 11:51:42.000	Georgescu Ionel	Targoviste	Bucuresti	110	971	transport marfa	fier beton	Materiale Constructii Bucuresti 
    5	2015-08-07 00:00:00.000	5	DB-02-SPR	2007-08-07 10:30:20.000	2007-08-07 12:51:42.000	Ionascu Paul	Targoviste	Bucuresti	110	NULL	transport marfa	fier beton	Materiale Constructii Bucuresti 
    6	2018-08-07 00:00:00.000	6	DB-03-STR	2011-08-07 10:30:20.000	2011-08-07 12:51:42.000	Ion Paul	Targoviste	Medgidia	140	NULL	transport marfa	ciment		Cimentul Medgidia
    7	2018-08-07 00:00:00.000	7	GL-08-FIT	2013-08-07 10:30:20.000	2013-08-07 12:51:42.000	Pricop George	Targoviste	Medgidia	140	NULL	transport marfa	ciment		Cimentul Medgidia
    8	2020-08-07 00:00:00.000	8	GL-08-FIT	2014-08-07 10:30:20.000	2014-08-07 12:51:42.000	Pricop Cristian	Targoviste	Medgidia	140	NULL	transport marfa	ciment		Cimentul Medgidia
    9	2025-08-07 00:00:00.000	9	GL-24-CAR	2017-08-07 10:30:20.000	2017-08-07 12:51:42.000	Enache Florin	Targoviste	Medgidia	140	NULL	transport marfa	ciment		Cimentul Medgidia
    10	2025-08-07 00:00:00.000	10	GL-24-CAR	2017-08-07 10:30:20.000	2017-08-07 12:51:42.000	Mihai Paul	Targoviste	Medgidia	140	NULL	transport marfa	ciment		Cimentul Medgidia
    11	2007-08-25 00:00:00.000	11	GL-24-CAR	2007-08-07 10:30:20.000	2007-08-17 12:51:42.000	Mihai Paul	Targoviste	Medgidia	140	NULL	transport marfa	ciment		Cimentul Medgidia
    Si vous voulez un 0 à la place des NULL :
    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
    UPDATE FPM
    SET FPM.CombustibilConsumat = coalesce(TPA.NormaL100KM, 0) * FPM.KM
    FROM
        dbo.FoaieParcursMasina AS FPM
        LEFT OUTER JOIN dbo.TipuriAutomobile AS TPA
          ON TPA.IdMasina = FPM.IdMasina;
     
    SELECT * FROM dbo.FoaieParcursMasina;
     
    1	2006-02-07 00:00:00.000	1	DB-20-RTS	2002-02-07 09:32:35.000	2002-02-07 11:20:32.000	Popescu George	Targoviste	Bucuresti	110	982	transport marfa	ciment		Materiale Constructii Bucuresti 
    2	2009-04-07 00:00:00.000	2	DB-20-RTS	2004-04-07 09:21:20.000	2004-04-07 11:51:42.000	Popescu George	Targoviste	Medgidia	140	1272	transport marfa	ciment		Cimentul Medgidia
    3	2012-08-07 00:00:00.000	3	DB-02-SPR	2004-08-07 09:21:20.000	2004-08-07 11:51:42.000	Popescu Cosmin	Targoviste	Bucuresti	110	1054	transport marfa	fier beton	Materiale Constructii Bucuresti 
    4	2013-08-07 00:00:00.000	4	DB-02-SPR	2006-08-07 09:21:20.000	2006-08-07 11:51:42.000	Georgescu Ionel	Targoviste	Bucuresti	110	971	transport marfa	fier beton	Materiale Constructii Bucuresti 
    5	2015-08-07 00:00:00.000	5	DB-02-SPR	2007-08-07 10:30:20.000	2007-08-07 12:51:42.000	Ionascu Paul	Targoviste	Bucuresti	110	0	transport marfa	fier beton	Materiale Constructii Bucuresti 
    6	2018-08-07 00:00:00.000	6	DB-03-STR	2011-08-07 10:30:20.000	2011-08-07 12:51:42.000	Ion Paul	Targoviste	Medgidia	140	0	transport marfa	ciment		Cimentul Medgidia
    7	2018-08-07 00:00:00.000	7	GL-08-FIT	2013-08-07 10:30:20.000	2013-08-07 12:51:42.000	Pricop George	Targoviste	Medgidia	140	0	transport marfa	ciment		Cimentul Medgidia
    8	2020-08-07 00:00:00.000	8	GL-08-FIT	2014-08-07 10:30:20.000	2014-08-07 12:51:42.000	Pricop Cristian	Targoviste	Medgidia	140	0	transport marfa	ciment		Cimentul Medgidia
    9	2025-08-07 00:00:00.000	9	GL-24-CAR	2017-08-07 10:30:20.000	2017-08-07 12:51:42.000	Enache Florin	Targoviste	Medgidia	140	0	transport marfa	ciment		Cimentul Medgidia
    10	2025-08-07 00:00:00.000	10	GL-24-CAR	2017-08-07 10:30:20.000	2017-08-07 12:51:42.000	Mihai Paul	Targoviste	Medgidia	140	0	transport marfa	ciment		Cimentul Medgidia
    11	2007-08-25 00:00:00.000	11	GL-24-CAR	2007-08-07 10:30:20.000	2007-08-17 12:51:42.000	Mihai Paul	Targoviste	Medgidia	140	0	transport marfa	ciment		Cimentul Medgidia

  3. #3
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut
    Salut Waldar!

    Milles merci pour l'aide!


    Mais malheuresement ce n'est pas exactement ca! Car le probleme est un peu complexe ! Le resultats obtenus par toi me conviennent mais le probleme est un peu complexe!

    Je vais essayer d'expliquer en detail ce que je veux aboutir!

    Si tu fais le query suivant: (regarde photo attache)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    SELECT tab1.NormaL100KM *tab2.KM AS Calcul
    FROM TipuriAutomobile tab1
    LEFT JOIN FoaieParcursMasina tab2 ON tab1.IdMasina = tab2.IdMasina
    tu obtiens dans la colonne calcul le resultat du produit des 2 colonnes KM*NormaL100KM.

    Voila le resultat de la requete (image attache)



    Le probleme qui me gene c'est que je veux le resultat de la colonne Calcul dans tous les valeurs NULL de la colonne CombustibilConsumat.

    Je vais donner des details car le probleme est complexe j'ai 4 jours que j'en galere ca!

    Bon maintenant je vais te donner des details:

    J'ai parfaitement entendu ce que je dois faire mais je ne sais pas malheuresement implementer en sql server. Si tu as des questions n'hesite pas me poser pour te donner des details.


    Mais le probleme est que j'ai 11 lignes dans table FoaieParcursMasina (11 lignes pour KM colonne et 11 lignes pour colonne CombustibilConsumat).

    Mon souci est le suivant:

    Chaque type de voiture (colonne TipAutomobil dans TipuriAutomobile) a une norme de consommation du combustible (essence, diesel) represente par les valeurs contenu dans la colonne NormaL100KM.

    Le probleme est que j'ai seulement 4 valeurs pour NormaL100KM.

    Donc mon idee c'est d'ajouter la colonne TipAutomobil aussi dans table FoaieParcursMasina et qu'il sait automatiquement quelle norme (valeur de consommation pour type d'automobile =colonne TipAutomobile pour attribuer et faire le calcul.).

    Colonne Combustibil Consumat a 11 lignes qui doivent etre completes, colonne KM 11 valeurs (lignes ) mais NormaL100KM a seulement 4 valeurs.

    Je dois lui dire d'attribuer la norme pour type d'automobile donc l'idee serait d'ajouter la colonne TipAutomobil dans FoaieParcursMasina et pour chaque type qu'il sait automatiquement la valeur.

    Puis pratiquement il sait completer tous les 11 valeurs de la colonne CombustibilConsumat.

    Merci beacoup pour ton reponse ca m'aides beacoup mais le probleme n'est pas si simple en esperant etre plus precis maintenant.

    En esperant etre plus clair maintenant le probleme est assez complexe!

    Si vous avez besoin des DDL de tables TipuriAutomobile et FoaieParcursMasina:

    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
     
     
    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
    )
     
     
    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)
    )
     
     
     
    -- then we insert lines in both tables
     
    INSERT INTO TipuriAutomobile& #40;IdTip,IdMasina,TipAutomobil,CapacitateMotor,CapacitateTransport,TipCombustib
    il,NormaL100KM)
    VALUES(1,1,'auto-cisterna','340kw','9000kg','motorina',8.93);
     
    INSERT INTO TipuriAutomobile& #40;IdTip,IdMasina,TipAutomobil,CapacitateMotor,CapacitateTransport,TipCombustib
    il,NormaL100KM)
    VALUES(2,2,'camion','320kw','7000kg','benzina',9.09);
     
    INSERT INTO TipuriAutomobile& #40;IdTip,IdMasina,TipAutomobil,CapacitateMotor,CapacitateTransport,TipCombustib
    il,NormaL100KM)
    VALUES(3,3,'auto-utilitara','300kw','8500kg','GPL',9.59);
     
    INSERT INTO TipuriAutomobile& #40;IdTip,IdMasina,TipAutomobil,CapacitateMotor,CapacitateTransport,TipCombustib
    il,NormaL100KM)
    VALUES(4,4,'basculanta','290kw','5500kg','benzina',8.83);
     
     
     
     
    INSERT INTO FoaieParcursMasina& #40;IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,N
     umeSofer,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& #40;IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,N
     umeSofer,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& #40;IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,N
     umeSofer,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& #40;IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,N
     umeSofer,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& #40;IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,N
     umeSofer,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& #40;IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,N
     umeSofer,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& #40;IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,N
     umeSofer,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& #40;IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,N
     umeSofer,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& #40;IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,N
     umeSofer,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& #40;IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,N
     umeSofer,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& #40;IdFoaie,DataFoaieParcurs,IdMasina,NumarMasina,DataOraPlecare,DataOraSosire,N
     umeSofer,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');
     
     
    SELECT * FROM TipuriAutomobile
     
    SELECT * FROM FoaieParcursMasina
    Amicalment,

    Michel
    Images attachées Images attachées  

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    D'accord, mais effectivement pour le moment il n'y a pas de jointure possible entre les types automobiles de vos deux tables.

    Il faudrait bien qu'on retrouve la colonne IdTip en clef étrangère dans FoaieParcursMasina. Une fois que ce sera fait il faudra faire la jointure sur l'IdTip.

    Par contre je ne sais pas à quoi correspond l'IdMasina ?
    A priori ce n'est pas une clef de jointure, je ne suis pas sûr que cette information soit utile.

  5. #5
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut
    Citation Envoyé par Waldar Voir le message
    D'accord, mais effectivement pour le moment il n'y a pas de jointure possible entre les types automobiles de vos deux tables.

    Il faudrait bien qu'on retrouve la colonne IdTip en clef étrangère dans FoaieParcursMasina. Une fois que ce sera fait il faudra faire la jointure sur l'IdTip.

    Par contre je ne sais pas à quoi correspond l'IdMasina ?
    A priori ce n'est pas une clef de jointure, je ne suis pas sûr que cette information soit utile.
    IdMasina c'est la cle primaire du table PatrimoniuMasini car en fait j'ai 3 tables - table qui couvrent les voitures d'une societe(colonne utilizator est le nom de la societe).

    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
     
    CREATE TABLE PatrimoniuMasini
    (
    IdMasina int PRIMARY KEY NOT NULL IDENTITY(1,1),
    NumarMasina varchar(255) UNIQUE,
    PersoanaFolMasina varchar(255),
    Utilizator varchar(255)
    )
     
     
    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');

    Ok. Si j'ai bien compris je dois ajouter la colonne IdTip aussi dans table FoaieParcursMasina.

    Ok mais dans ce cas comment puis-je faire ca j'ai 4 lignes dans NormaL100KM.

    Quoi dois-je modifier?
    J'ai attache aussi le tableau PatrimoniuMasini c'est ma structure complete de ma base des donnees qui couvrent 3 tables. (PatrimoniuMasini,TipuriAutomobile(types auto),FoaieParcursMasina(feuille parcours pour les voitures pour transporter quelque chose).

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Dans ce cas Id_Tip est plutôt un attribut de PatrimoniuMasini.

    C'est à vous d'affecter un type de consommation par véhicule, ça je ne peux pas l'inventer pour vous !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 12/03/2014, 21h28
  2. Calculer le produit des valeurs d'une colonne
    Par AJ_ing dans le forum Shell et commandes GNU
    Réponses: 12
    Dernier message: 19/06/2012, 06h53
  3. [C#] Changer les couleurs des titres colonnes d'une listView
    Par ExSter dans le forum Windows Forms
    Réponses: 4
    Dernier message: 15/04/2007, 21h02
  4. [CR9]Masquer des données (colonnes) suivant valeur champ
    Par neo.51 dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 05/09/2005, 09h43
  5. Faire le produit de 2 colonnes
    Par toure32 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 07/11/2003, 20h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo