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

WinDev Discussion :

Regrouper deux requêtes en une


Sujet :

WinDev

  1. #1
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut Regrouper deux requêtes en une
    Bonjour,

    Dilemme du jour, j'aimerais pouvoir regrouper deux requêtes en une seule...

    Vous allez comprendre pourquoi.

    J'ai deux fichiers dans mon analyse : Jeux et Planning, les voici :



    Et j'ai deux requetes :

    REQ_Planning_Jeux_Mois qui renvoi tous les jeux se déroulant sur un mois donné :

    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
     
    SELECT 
    	Jeux.IDJeux AS IDJeux,	
    	Jeux.Date_Debut_Jeu AS Date_Debut_Jeu,	
    	Jeux.Date_Fin_Jeu AS Date_Fin_Jeu
    FROM 
    	Jeux
    WHERE 
     
    	(
    		Jeux.Date_Debut_Jeu BETWEEN {P_Date_Debut} AND {P_Date_Fin}
    		AND	Jeux.Date_Fin_Jeu BETWEEN {P_Date_Debut} AND {P_Date_Fin}
    	)
    	OR	
    	(
    		Jeux.Date_Debut_Jeu <= {P_Date_Debut}
    		AND	Jeux.Date_Fin_Jeu >= {P_Date_Debut}
    	)
    	OR	
    	(
    		Jeux.Date_Debut_Jeu <= {P_Date_Fin}
    		AND	Jeux.Date_Fin_Jeu >= {P_Date_Fin}
    	)
    REQ_Planning_Calendrier qui renvoi un COUNT du jeu selon son ID (0 si pas planifié sinon > 0)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT 
    	COUNT(*) AS Nb_Jeux_Planning
    FROM 
    	Planning
    WHERE 
    	Planning.Date_Planning = {P_Date_Planning}
    	AND	Planning.IDJeux = {P_IDJeux}
    Le code suivant permet de lister dans un tableau les jours du mois affiché dans un champ calendrier :

    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
     
    TableauSupprimeTout(Tableau_Planning_Calendrier)
     
    // RECUPERATION DU PREMIER ET DERNIER JOUR DU MOIS AFFICHE
    Indice_Date est un entier
    Date_Actuelle est une Date = DateSys()
    Date_Premier_Jour est une Date = CalendrierPosition(CAL_Planning)
    Date_Dernier_Jour est une Date = Date_Premier_Jour
    Date_Dernier_Jour..Jour = 31
    Date_Nombre_Jour est un entier = Date_Dernier_Jour..Jour
     
    // REMPLISSAGE DES JOURS DU MOIS AFFICHE
    Nouveau_Planning_Calendrier est un Cl_Planning_Calendrier
    POUR i_date = DateVersEntier(Date_Premier_Jour) _A_ DateVersEntier(Date_Dernier_Jour)
    	SI i_date <> DateVersEntier(Date_Actuelle) ALORS
    		SI DateDifférence(EntierVersDate(i_date), Date_Actuelle) < 0 ALORS
    			Nouveau_Planning_Calendrier:p_Date_Calendrier = EntierVersDate(i_date)
    			Nouveau_Planning_Calendrier:p_Type = 0
    		SINON
    			Nouveau_Planning_Calendrier:p_Date_Calendrier = EntierVersDate(i_date)
    			Nouveau_Planning_Calendrier:p_Type = -1
    		FIN
    		TableauAjouteLigne(Tableau_Planning_Calendrier, Nouveau_Planning_Calendrier)
    	FIN
    FIN
    J'ajoute donc comme p_Type : 0 si le jour est postérieure à la date actuelle ou -1 si le jour est dépassé.


    Ensuite, c'est là que c'est pas top...

    Ce code modifie les données du tableau selon le contenu de la requête REQ_Planning_Jeux_Mois si il y a un jeu à planifier tel ou tel jour vous voyez ...?

    Le problème est que j'ai besoin de faire une nouvelle requête pour savoir si le jeu est déjà planifié pour tel ou tel jour et comme on est dans les boucles POUR TOUT et POUR i_date... et bien j'ai plusieurs exécution de la REQ_Planning_Calendrier

    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
     
    SI HExécuteRequête(REQ_Planning_Jeux_Mois, hRequêteDéfaut, Date_Premier_Jour, Date_Dernier_Jour) = Vrai ALORS
    	POUR TOUT REQ_Planning_Jeux_Mois
    		POUR i_date = DateVersEntier(Date_Premier_Jour) _A_ DateVersEntier(Date_Dernier_Jour)
    			Indice_Date = TableauCherche(Tableau_Planning_Calendrier, tcLinéaire, "Date_Calendrier", EntierVersDate(i_date))
    			SI Indice_Date <> -1 ALORS
    				SI (i_date >= DateVersEntier(REQ_Planning_Jeux_Mois.Date_Debut_Jeu)) ET (i_date <= DateVersEntier(REQ_Planning_Jeux_Mois.Date_Fin_Jeu)) ALORS
    					SI HExécuteRequête(REQ_Planning_Calendrier, hRequêteDéfaut, EntierVersDate(i_date), REQ_Planning_Jeux_Mois.IDJeux) = Vrai ALORS
    						SI (HLitPremier(REQ_Planning_Calendrier) = Vrai) ET (REQ_Planning_Calendrier.Nb_Jeux_Planning > 0 ) ALORS
    							SI DateDifférence(EntierVersDate(i_date), Date_Actuelle) < 0 ALORS
    								SI Tableau_Planning_Calendrier[Indice_Date]:p_Type <> 1 ALORS
    									Tableau_Planning_Calendrier[Indice_Date]:p_Type = 2
    								FIN
    							SINON
    								Tableau_Planning_Calendrier[Indice_Date]:p_Type = -2
    							FIN
    						SINON
    							SI DateDifférence(EntierVersDate(i_date), Date_Actuelle) < 0 ALORS
    								Tableau_Planning_Calendrier[Indice_Date]:p_Type = 1
    							SINON
    								Tableau_Planning_Calendrier[Indice_Date]:p_Type = -1
    							FIN
    						FIN
    					SINON
    						SI DateDifférence(EntierVersDate(i_date), Date_Actuelle) < 0 ALORS
    							Tableau_Planning_Calendrier[Indice_Date]:p_Type = 1
    						SINON
    							Tableau_Planning_Calendrier[Indice_Date]:p_Type = -1
    						FIN
    					FIN
    					HLibèreRequête(REQ_Planning_Calendrier)
    				FIN
    			FIN
    		FIN
    	FIN
    FIN
    HLibèreRequête(REQ_Planning_Jeux_Mois)

    Il y a t'il un moyen de récupérer en une seule requête les jeux en cours sur un mois donné et savoir si ils sont déjà planifié ou non sur tous les jours du mois...?

    Merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    J'ajouterai une jointure externe:
    Code sql : 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
     
    SELECT distinct
    	Jeux.IDJeux AS IDJeux,	
    	Jeux.Date_Debut_Jeu AS Date_Debut_Jeu,	
    	Jeux.Date_Fin_Jeu AS Date_Fin_Jeu,
    (case when planning.idjeux is null then "non" else "oui")
    FROM 
    	Jeux
    left outer join Planning on planning.idjeux = jeux.idjeux and planning.Date_Planning = ???
    WHERE 
    	(
    		Jeux.Date_Debut_Jeu BETWEEN {P_Date_Debut} AND {P_Date_Fin}
    		AND	Jeux.Date_Fin_Jeu BETWEEN {P_Date_Debut} AND {P_Date_Fin}
    	)
    	OR	
    	(
    		Jeux.Date_Debut_Jeu <= {P_Date_Debut}
    		AND	Jeux.Date_Fin_Jeu >= {P_Date_Debut}
    	)
    	OR	
    	(
    		Jeux.Date_Debut_Jeu <= {P_Date_Fin}
    		AND	Jeux.Date_Fin_Jeu >= {P_Date_Fin}
    	)
    Il ne manque plus que le critère sur la date dans la jointure entre planning et jeux.

    Tatayo.

    P.S. Je me demande si on ne peut pas simplifier les critères sur la date:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
    (
    		Jeux.Date_Debut_Jeu <= {P_Date_Fin}
    		AND	Jeux.Date_Fin_Jeu >= {P_Date_Debut} 
    )

  3. #3
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Merci de ton aide tatayo, j'essai dès que j'ai mon Windev sous la main

  4. #4
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Bon je suis sur mon Windev, pour LEFT OUTER JOIN Planning ON planning.idjeux = jeux.idjeux AND planning.Date_Planning = ???

    Je pense qu'il faut que je mette le même système que dans le WHERE non ?

    Car enfaîte dans mon ancienne requête REQ_Planning_Calendrier c'était = au paramètre {P_Date_Planning} qui correspond à EntierVersDate(i_date) dans la boucle pour i_date etc...

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Citation Envoyé par WDKyle Voir le message
    Bon je suis sur mon Windev, pour LEFT OUTER JOIN Planning ON planning.idjeux = jeux.idjeux AND planning.Date_Planning = ???

    Je pense qu'il faut que je mette le même système que dans le WHERE non ?

    Car enfaîte dans mon ancienne requête REQ_Planning_Calendrier c'était = au paramètre {P_Date_Planning} qui correspond à EntierVersDate(i_date) dans la boucle pour i_date etc...
    Si tu le mets dans le where tu annules l'effet du LEFT JOIN et tu le convertis en INNER JOIN... donc tu n'auras que les lignes avec une correspondance.
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  6. #6
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Comment faire alors pour qu'il récupère les planning selon le mois en cours ?

  7. #7
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    ouh pardon j'avais pas bien compris la question.. ouais il faut faire pareil que dans le where : utiliser des paramètres !

    Excuses moi !
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  8. #8
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    L'éditeur de requête n'as pas l'air d'aimer le (CASE WHEN Planning.IDJeux IS NULL THEN "non" ELSE "oui")

  9. #9
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Citation Envoyé par WDKyle Voir le message
    L'éditeur de requête n'as pas l'air d'aimer le (CASE WHEN Planning.IDJeux IS NULL THEN "non" ELSE "oui")
    Pas de parenthèse et un END à la fin ça ira mieux...

    d'ailleurs mets aussi un AS
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  10. #10
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Citation Envoyé par michel.souris Voir le message
    Pas de parenthèse et un END à la fin ça ira mieux...

    d'ailleurs mets aussi un AS
    Effectivement, j'ai vu çà à l'instant dans la doc PCSoft, par contre un AS ou çà ?

  11. #11
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    après le END pour pouvoir exploiter ton "champ" calculé en faisant
    <NOM DE LA REQUETE>.<nom du champ>

    sinon je crois ça renvoie Expr1, Expr2... bon c'est du confort pas du fonctionnel
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  12. #12
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Comme 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
    21
    22
    23
    24
    25
     
    SELECT DISTINCT
    	Jeux.IDJeux AS IDJeux,	
    	Jeux.Date_Debut_Jeu AS Date_Debut_Jeu,	
    	Jeux.Date_Fin_Jeu AS Date_Fin_Jeu,
    	CASE WHEN Planning.IDJeux IS NULL THEN "non" ELSE "oui" END,
    	Planning.IDJeux AS Date_Planning
    FROM 
    	Jeux
    LEFT OUTER JOIN Planning ON Planning.IDJeux = Jeux.IDJeux AND Planning.Date_Planning = ???
    WHERE 
    	(
    	Jeux.Date_Debut_Jeu BETWEEN {P_Date_Debut} AND {P_Date_Fin}
    	AND	Jeux.Date_Fin_Jeu BETWEEN {P_Date_Debut} AND {P_Date_Fin}
    	)
    	OR	
    	(
    	Jeux.Date_Debut_Jeu <= {P_Date_Debut}
    	AND	Jeux.Date_Fin_Jeu >= {P_Date_Debut}
    	)
    	OR	
    	(
    	Jeux.Date_Debut_Jeu <= {P_Date_Fin}
    	AND	Jeux.Date_Fin_Jeu >= {P_Date_Fin}
    	)
    Merci pour votre intérêt à tous

    EDIT : Je suis une bille en SQL pure :s Enfin je connais juste les bases...

  13. #13
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut

    Il ne reste plus qu'à ajouter la condition sur la date dans la jointure externe.

    Tatayo.

  14. #14
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Citation Envoyé par tatayo Voir le message

    Il ne reste plus qu'à ajouter la condition sur la date dans la jointure externe.

    Tatayo.
    D'ac

    Mais sur la date, je ne dois pas mettre un créneau ? Comme dans le WHERE ?

  15. #15
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Citation Envoyé par WDKyle Voir le message
    D'ac

    Mais sur la date, je ne dois pas mettre un créneau ? Comme dans le WHERE ?
    Tu es libre !!!

    juste ne le mets pas dans le where pour pas le transformer en INNER... c'est tout
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  16. #16
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Libre ? çà n'as pas d'importance ?

    EDIT : Mince, j'ai écris : Planning.IDJeux AS Date_Planning mais c'est pas bon en faite ... Je vais mettre Planning.IDJeux AS ID_Jeux_Planning plutot

  17. #17
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CASE WHEN Planning.IDJeux IS NULL THEN "non" ELSE "oui" END,
    	Planning.IDJeux END AS Date_Planning
    quand je dis libre c'est libre de mettre la restriction que tu veux après la jointure... donc un BETWEEN ou un = c'est toi qui vois...

    donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LEFT OUTER JOIN Planning ON Planning.IDJeux = Jeux.IDJeux AND Planning.Date_Planning BETWEEN {pDateDeb} AND {pDateFin}
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LEFT OUTER JOIN Planning ON Planning.IDJeux = Jeux.IDJeux AND Planning.Date_Planning = {pDateExacte}
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  18. #18
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Il y a un truc que je calcule juste maintenant...

    Je connais pas ton modèle ni le contexte dans lequel il est implémenté mais je me dis que manifestement des Jeux sont organisés sur une période (Date_Debut_Jeu et Date_Fin_Jeu) que des "sessions" sont organisées dans la table Planning à une date donnée et heure donnée (Date_Planning et Heure_Planning)...

    Si je sélectionne des "sessions" d'un jeu, elles devraient naturellement se trouver sur la période du jeu... sinon c'est que j'autorise l'insertion de "session" en dehors de la période du jeu. A la réflexion la restriction n'est peut-être même pas nécessaire !

    Mais j'ai peut être pas bien compris le modèle...
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  19. #19
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    D'accord ! Non mais une vrai bille je vous dis lol

    Merci michel.souris

    Pour revenir en CAS WHEN, il me met un soulignage vert sous le "nom".

    Ça veux bien dire : SI Planning.IDJeux est NULL > tu renvoi "non" sinon tu renvoi "oui" ?

  20. #20
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Citation Envoyé par michel.souris Voir le message
    Il y a un truc que je calcule juste maintenant...

    Je connais pas ton modèle ni le contexte dans lequel il est implémenté mais je me dis que manifestement des Jeux sont organisés sur une période (Date_Debut_Jeu et Date_Fin_Jeu) que des "sessions" sont organisées dans la table Planning à une date donnée et heure donnée (Date_Planning et Heure_Planning)...

    Si je sélectionne des "sessions" d'un jeu, elles devraient naturellement se trouver sur la période du jeu... sinon c'est que j'autorise l'insertion de "session" en dehors de la période du jeu. A la réflexion la restriction n'est peut-être même pas nécessaire !

    Mais j'ai peut être pas bien compris le modèle...
    Oui en faite dans Jeux il y a un créneau de date pour la validité du jeux ensuite j'ai le droit de le planifié autant de fois que je souhaite par jour compris dans le créneau.

Discussions similaires

  1. Requête regroupant deux lignes sur une colonne
    Par majo59 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/08/2012, 10h05
  2. Somme de deux requête en une en sql/access
    Par thepunky89 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/09/2007, 14h31
  3. Regrouper plusieurs requêtes en une seule?
    Par kabkab dans le forum Requêtes
    Réponses: 12
    Dernier message: 28/07/2007, 11h54
  4. [SQL Server 8] Regrouper 2 requêtes en une ?
    Par Baquardie dans le forum Langage SQL
    Réponses: 3
    Dernier message: 22/06/2004, 22h22
  5. Regrouper 3 requêtes dans une seule
    Par LadyArwen dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/06/2003, 09h32

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