Discussion: Sujet non compris

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    janvier 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2015
    Messages : 19
    Points : 7
    Points
    7

    Par défaut Sujet non compris

    Bonjour,

    avant même de commencer l'exercice, je ne comprend pas très bien le sujet en lui-même, ce que le trigger fait

    une petit explication serait pas de refus

    voici le trigger :
    en gros, je ne comprend pas à quoi il sert et ce qu'il fait.

    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
     
    CREATE FUNCTION reglementSejour(idResa integer)
    RETURNS numeric(l0,2)
    AS $codeFonction$
    DECLARE
    	numCli integer ;
    	montantDejaPaye numeric(l0,2) ;
    BEGIN
    	SELECT idClient INTO numCli
    	FROM reservation
    	WHERE idReservation = idResa ;
     
    SELECT SUM(montantReglement) INTO montantDejaPaye
    	FROM reglement
    	WHERE idReservation = idResa ;
    	IF	(montantDejaPaye IS NULL ) THEN
     
    montantDejaPaye = 0 ;
     
    END IF ;
     
    IF ((SELECT COUNT(*) FROM pro WHERE idClient = numCli)=l) THEN
    		RETURN(SELECT SUM(prix * duree) - montantDejaPaye
    			FROM contenir
    					JOIN chambre USING (numeroChambre)
    					JOIN concerner USING (numeroChambre,idReservation)
    			WHERE dateDebut >= CURRENT_DATE
    			AND idReservation = idResa
    			) 
    ;
    	ELSE
    RETURN (SELECT SUM(prix * duree)
     
    			FROM contenir
    				JOIN chambre USING (numeroChambre)
    				JOIN concerner USING (numeroChambre,idReservation)
    			WHERE idReservation = idResa
    			) ;
    END IF ;
     
    END ;
    $codeFonction$ LANGUAGE PLPGSQL ;

  2. #2
    Membre expérimenté Avatar de vttman
    Homme Profil pro
    Développeur COBOL et le WE (CSS, PHP, JS et MYSQL)
    Inscrit en
    décembre 2002
    Messages
    694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur COBOL et le WE (CSS, PHP, JS et MYSQL)
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2002
    Messages : 694
    Points : 1 305
    Points
    1 305

    Par défaut

    Il faudrait savoir à qui sert la table pro
    => pro(vision) ?
    => pro(totype) ?
    => pro(phétique) ?
    => pro(fessionnel) ?

    Les autres tables (réservation, reglement, etc.)
    portant un nom parlant/évocateur ...

    Sans cela on peut expliquer certes mais ça pourrait ne pas
    avoir beaucoup de sens ou une interprétation erronée !?
    Je suis sympa comme tout Mosellan mais ...
    ... (m')aider ou (me) mettre sur la voie c'est une chose
    ... tout (me) faire de A à Z, c'est pas ma conception du rôle d'un forum X ou Y
    Si vous n'êtes pas satisfait de mes réponses, n'hésitez pas à me le faire savoir Merci !

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    janvier 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2015
    Messages : 19
    Points : 7
    Points
    7

    Par défaut re

    Bonjour vttman,

    oui en effet j'ai un mcd à disposition aussi mais je savais pas que sa pouvait être utile pour cette partie de l'exercice


    Nom : mcd.png
Affichages : 39
Taille : 135,0 Ko

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Inscrit en
    mai 2002
    Messages
    17 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 17 266
    Points : 39 959
    Points
    39 959
    Billets dans le blog
    1

    Par défaut

    Ce "trigger" retourne le solde à payer.

    Pour information les jointures avec USING sont un véritable poison et une imbécilité ! En effet elles conduisent systématiquement à des jointures triangulaires et tuent les performances.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  5. #5
    Membre expérimenté Avatar de vttman
    Homme Profil pro
    Développeur COBOL et le WE (CSS, PHP, JS et MYSQL)
    Inscrit en
    décembre 2002
    Messages
    694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur COBOL et le WE (CSS, PHP, JS et MYSQL)
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2002
    Messages : 694
    Points : 1 305
    Points
    1 305

    Par défaut

    Oui Pro => Professionnel maintenant c'est clair !

    Ce que j'en comprend, SQL PRO pourra peut-être confirmer (Bonjour au passage)
    =>
    1) On sélectionne le numéro de client pour une réservation donnée
    2) On calcule ensuite ce qu'il a déjà réglé, si on ne trouve rien c'est 0
    3) Si c'est un PRO on retourne ce qui lui reste à payer par rapport à sa réservation
    et par rapport à une date (voir ci dessous point B)
    Sinon // je suppose que c'est un particulier
    on retourne ce que le particulier doit payer par rapport à sa réservation // pas de montant déjà payé pris en compte

    Ce qui pourrait laisser supposer (sauf erreur de ma part )
    A) Que les PRO peuvent régler en plusieurs fois et les particuliers en une seule (Bon je ne suis pas famille avec Sherlock Holmes )
    B) Qu'à une date donnée, malgré une somme ou pas déjà versée, le PRO n'ait rien à régler pour le moment ... ou à régler un autre somme mais pas la totalité de sa note systématiquement ...
    Je suis sympa comme tout Mosellan mais ...
    ... (m')aider ou (me) mettre sur la voie c'est une chose
    ... tout (me) faire de A à Z, c'est pas ma conception du rôle d'un forum X ou Y
    Si vous n'êtes pas satisfait de mes réponses, n'hésitez pas à me le faire savoir Merci !

  6. #6
    Membre expérimenté Avatar de vttman
    Homme Profil pro
    Développeur COBOL et le WE (CSS, PHP, JS et MYSQL)
    Inscrit en
    décembre 2002
    Messages
    694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur COBOL et le WE (CSS, PHP, JS et MYSQL)
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2002
    Messages : 694
    Points : 1 305
    Points
    1 305

    Par défaut

    Citation Envoyé par SQLpro Voir le message
    Ce "trigger" retourne le solde à payer.

    Pour information les jointures avec USING sont un véritable poison et une imbécilité ! En effet elles conduisent systématiquement à des jointures triangulaires et tuent les performances.

    A +
    USING : 1ère fois, me semble t'il, que je voyais ça d'ailleurs
    Je suis sympa comme tout Mosellan mais ...
    ... (m')aider ou (me) mettre sur la voie c'est une chose
    ... tout (me) faire de A à Z, c'est pas ma conception du rôle d'un forum X ou Y
    Si vous n'êtes pas satisfait de mes réponses, n'hésitez pas à me le faire savoir Merci !

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    janvier 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2015
    Messages : 19
    Points : 7
    Points
    7

    Par défaut re

    d'accord merci de vos réponses, je vais enfin essayais de commencer l'exercice grâce à ces éléments.
    Pour info, oui pour le "using" le prof en a parlé, mais pas le choix pour lui, il nous a dit qu'on doit aussi voir un trigger l'utilisant au moins une fois pour pas être étonné un jour où on le rencontre

  8. #8
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Recherche, formation, développement
    Inscrit en
    août 2006
    Messages
    1 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Mali

    Informations professionnelles :
    Activité : Recherche, formation, développement

    Informations forums :
    Inscription : août 2006
    Messages : 1 463
    Points : 3 151
    Points
    3 151
    Billets dans le blog
    6

    Par défaut

    Salut
    Citation Envoyé par Kenoby Voir le message
    ...avant même de commencer l'exercice, je ne comprend pas très bien le sujet en lui-même, ce que le trigger fait
    ... et si la question du sujet est "Que fait le trigger?"
    C'est pas vraiment l'habitude de SQLpro de répondre à ces genre de question. Alors on manque de vigilance ou quoi?
    @+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

Discussions similaires

  1. Bug non compris
    Par Alec6 dans le forum Hibernate
    Réponses: 2
    Dernier message: 05/02/2007, 09h48
  2. Current (bug ou principe non compris ?)
    Par DelphiManiac dans le forum Access
    Réponses: 7
    Dernier message: 10/10/2006, 14h55
  3. [error] depassement de memoire non compris
    Par guns17 dans le forum Syntaxe
    Réponses: 8
    Dernier message: 26/07/2006, 16h35

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