OVH Cloud OVH Cloud

Requétes

6 réponses
Avatar
Olivier
Bonjour,

j'aimerais r=E9aliser une requ=E9te qui donne ce resultat :

j'ai des enregitrement qui sont segment=E9 par horaire ex :

9 h 19 h.

jaimerais que ma requ=E9te me sorte un resultat par quert-
d'heure ex :

9h00-9h15
9h15-9h30
9h30-10h00

Je ne vois pas a part faire un curseur surtout que=20
plusieurs enregistrement peuvent avoir un d=E9but au m=EAme=20
moment.

Comment faire ?

6 réponses

Avatar
Fred BROUARD
ajouter une table de tranche d'horaire de la sorte :

CREATE TABLE T_TRANCHE_HORAIRE_TRH
(TRH_ID INTEGER NOT NULL PRIMARY KEY,
TRH_HEURE_MIN DATETIME NOT NULL,
TRH_HEURE_MAX DATETIME NOT NULL)

et la remplir avec les horaires pour une date bidon (1/1/1900)
sur 24h par quart d'heure.

Après faire une non equi jointure par intervalle.

Exemple :

SELECT ...
FROM MaTable T
INNER JOIN T_TRANCHE_HORAIRE_TRH TRH
ON TRH.TRH_HEURE_MIN <= T.Monheure
AND TRH.TRH_HEURE_MAX > T.Monheure

Sur les problématiques de temps :
http://sqlpro.developpez.com/Planning/SQL_PLN.html

A +

Olivier a écrit:
Bonjour,

j'aimerais réaliser une requéte qui donne ce resultat :

j'ai des enregitrement qui sont segmenté par horaire ex :

9 h 19 h.

jaimerais que ma requéte me sorte un resultat par quert-
d'heure ex :

9h00-9h15
9h15-9h30
9h30-10h00

Je ne vois pas a part faire un curseur surtout que
plusieurs enregistrement peuvent avoir un début au même
moment.

Comment faire ?



--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************
Avatar
olivier
Bonjour,

merci de votre réponse mais ce que je voulais c'étais
générer une ligne vide quand aucun enregistrement ne
correpondait, donc j'ai fais une jointure gauche,

per contre ce qui m'interresserais c'est de pourvoir avoir
des enregistrement qui correpondent a une plage d'heure
ex :

dispo 9-19 h
meeting 9 10 h
meeting 10 11 h
rien

Donc mon resultat serait :

meeting 9 10
meeting 10 11
dispo 11 12
dispo 12 13

en gros je voudrais générer des lignes suivant les
disponibilités...comment faire ?


-----Message d'origine-----
ajouter une table de tranche d'horaire de la sorte :

CREATE TABLE T_TRANCHE_HORAIRE_TRH
(TRH_ID INTEGER NOT NULL PRIMARY KEY,
TRH_HEURE_MIN DATETIME NOT NULL,
TRH_HEURE_MAX DATETIME NOT NULL)

et la remplir avec les horaires pour une date bidon


(1/1/1900)
sur 24h par quart d'heure.

Après faire une non equi jointure par intervalle.

Exemple :

SELECT ...
FROM MaTable T
INNER JOIN T_TRANCHE_HORAIRE_TRH TRH
ON TRH.TRH_HEURE_MIN <= T.Monheure
AND TRH.TRH_HEURE_MAX > T.Monheure

Sur les problématiques de temps :
http://sqlpro.developpez.com/Planning/SQL_PLN.html

A +

Olivier a écrit:
Bonjour,

j'aimerais réaliser une requéte qui donne ce resultat :

j'ai des enregitrement qui sont segmenté par horaire




ex :

9 h 19 h.

jaimerais que ma requéte me sorte un resultat par quert-
d'heure ex :

9h00-9h15
9h15-9h30
9h30-10h00

Je ne vois pas a part faire un curseur surtout que
plusieurs enregistrement peuvent avoir un début au même
moment.

Comment faire ?



--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server /


Delphi / web
Livre SQL - col. Référence :


http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros :


http://sqlpro.developpez.com
****************** mailto:


******************

.



Avatar
Fred BROUARD
A l'aide d'une jointure externe gauche associé avec un COALESCE :


SELECT ..., COALESCE(ColonneAction, 'dispo') AS Action

FROM MaTable T

LEFT OUTER JOIN T_TRANCHE_HORAIRE_TRH TRH
ON TRH.TRH_HEURE_MIN <= T.Monheure
AND TRH.TRH_HEURE_MAX > T.Monheure

A +



olivier a écrit:
Bonjour,

merci de votre réponse mais ce que je voulais c'étais
générer une ligne vide quand aucun enregistrement ne
correpondait, donc j'ai fais une jointure gauche,

per contre ce qui m'interresserais c'est de pourvoir avoir
des enregistrement qui correpondent a une plage d'heure
ex :

dispo 9-19 h
meeting 9 10 h
meeting 10 11 h
rien

Donc mon resultat serait :

meeting 9 10
meeting 10 11
dispo 11 12
dispo 12 13

en gros je voudrais générer des lignes suivant les
disponibilités...comment faire ?



-----Message d'origine-----
ajouter une table de tranche d'horaire de la sorte :

CREATE TABLE T_TRANCHE_HORAIRE_TRH
(TRH_ID INTEGER NOT NULL PRIMARY KEY,
TRH_HEURE_MIN DATETIME NOT NULL,
TRH_HEURE_MAX DATETIME NOT NULL)

et la remplir avec les horaires pour une date bidon



(1/1/1900)

sur 24h par quart d'heure.

Après faire une non equi jointure par intervalle.

Exemple :

SELECT ...



FROM MaTable T



INNER JOIN T_TRANCHE_HORAIRE_TRH TRH
ON TRH.TRH_HEURE_MIN <= T.Monheure
AND TRH.TRH_HEURE_MAX > T.Monheure

Sur les problématiques de temps :
http://sqlpro.developpez.com/Planning/SQL_PLN.html

A +

Olivier a écrit:

Bonjour,

j'aimerais réaliser une requéte qui donne ce resultat :

j'ai des enregitrement qui sont segmenté par horaire





ex :

9 h 19 h.

jaimerais que ma requéte me sorte un resultat par quert-
d'heure ex :

9h00-9h15
9h15-9h30
9h30-10h00

Je ne vois pas a part faire un curseur surtout que
plusieurs enregistrement peuvent avoir un début au même
moment.

Comment faire ?



--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server /



Delphi / web

Livre SQL - col. Référence :



http://sqlpro.developpez.com/bookSQL.html

Le site du SQL, pour débutants et pros :



http://sqlpro.developpez.com

****************** mailto:



******************

.









--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************
Avatar
Fred BROUARD
A l'aide d'une jointure externe gauche associé avec un COALESCE :


SELECT ..., COALESCE(ColonneAction, 'dispo') AS Action

FROM MaTable T

LEFT OUTER JOIN T_TRANCHE_HORAIRE_TRH TRH
ON TRH.TRH_HEURE_MIN <= T.Monheure
AND TRH.TRH_HEURE_MAX > T.Monheure

A +



olivier a écrit:
Bonjour,

merci de votre réponse mais ce que je voulais c'étais
générer une ligne vide quand aucun enregistrement ne
correpondait, donc j'ai fais une jointure gauche,

per contre ce qui m'interresserais c'est de pourvoir avoir
des enregistrement qui correpondent a une plage d'heure
ex :

dispo 9-19 h
meeting 9 10 h
meeting 10 11 h
rien

Donc mon resultat serait :

meeting 9 10
meeting 10 11
dispo 11 12
dispo 12 13

en gros je voudrais générer des lignes suivant les
disponibilités...comment faire ?



-----Message d'origine-----
ajouter une table de tranche d'horaire de la sorte :

CREATE TABLE T_TRANCHE_HORAIRE_TRH
(TRH_ID INTEGER NOT NULL PRIMARY KEY,
TRH_HEURE_MIN DATETIME NOT NULL,
TRH_HEURE_MAX DATETIME NOT NULL)

et la remplir avec les horaires pour une date bidon



(1/1/1900)

sur 24h par quart d'heure.

Après faire une non equi jointure par intervalle.

Exemple :

SELECT ...



FROM MaTable T



INNER JOIN T_TRANCHE_HORAIRE_TRH TRH
ON TRH.TRH_HEURE_MIN <= T.Monheure
AND TRH.TRH_HEURE_MAX > T.Monheure

Sur les problématiques de temps :
http://sqlpro.developpez.com/Planning/SQL_PLN.html

A +

Olivier a écrit:

Bonjour,

j'aimerais réaliser une requéte qui donne ce resultat :

j'ai des enregitrement qui sont segmenté par horaire





ex :

9 h 19 h.

jaimerais que ma requéte me sorte un resultat par quert-
d'heure ex :

9h00-9h15
9h15-9h30
9h30-10h00

Je ne vois pas a part faire un curseur surtout que
plusieurs enregistrement peuvent avoir un début au même
moment.

Comment faire ?



--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server /



Delphi / web

Livre SQL - col. Référence :



http://sqlpro.developpez.com/bookSQL.html

Le site du SQL, pour débutants et pros :



http://sqlpro.developpez.com

****************** mailto:



******************

.









--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************
Avatar
olivier
Merci de ta réponse,

J'ai fais une requétes qui me renvoie mes enreg mais j'ai
parfois des doublons car j'ai pour un quart d'heure deux
enrg qui peuvent correpondre :
1 dispo et 1 RV alors que je ne veux que le meeting pour
cette ligne

Comment faire pour avoir le meeting sur ce quart d'heure
mais que ma dispo puisse apparaitre sur les quart d'heure
ou elle correpond seul ?

MErci
-----Message d'origine-----
A l'aide d'une jointure externe gauche associé avec un


COALESCE :


SELECT ..., COALESCE(ColonneAction, 'dispo') AS Action

FROM MaTable T

LEFT OUTER JOIN T_TRANCHE_HORAIRE_TRH TRH
ON TRH.TRH_HEURE_MIN <= T.Monheure
AND TRH.TRH_HEURE_MAX > T.Monheure

A +



olivier a écrit:
Bonjour,

merci de votre réponse mais ce que je voulais c'étais
générer une ligne vide quand aucun enregistrement ne
correpondait, donc j'ai fais une jointure gauche,

per contre ce qui m'interresserais c'est de pourvoir




avoir
des enregistrement qui correpondent a une plage d'heure
ex :

dispo 9-19 h
meeting 9 10 h
meeting 10 11 h
rien

Donc mon resultat serait :

meeting 9 10
meeting 10 11
dispo 11 12
dispo 12 13

en gros je voudrais générer des lignes suivant les
disponibilités...comment faire ?



-----Message d'origine-----
ajouter une table de tranche d'horaire de la sorte :

CREATE TABLE T_TRANCHE_HORAIRE_TRH
(TRH_ID INTEGER NOT NULL PRIMARY KEY,
TRH_HEURE_MIN DATETIME NOT NULL,
TRH_HEURE_MAX DATETIME NOT NULL)

et la remplir avec les horaires pour une date bidon



(1/1/1900)

sur 24h par quart d'heure.

Après faire une non equi jointure par intervalle.

Exemple :

SELECT ...



FROM MaTable T



INNER JOIN T_TRANCHE_HORAIRE_TRH TRH
ON TRH.TRH_HEURE_MIN <= T.Monheure
AND TRH.TRH_HEURE_MAX > T.Monheure

Sur les problématiques de temps :
http://sqlpro.developpez.com/Planning/SQL_PLN.html

A +

Olivier a écrit:

Bonjour,

j'aimerais réaliser une requéte qui donne ce resultat :

j'ai des enregitrement qui sont segmenté par horaire





ex :

9 h 19 h.

jaimerais que ma requéte me sorte un resultat par








quert-
d'heure ex :

9h00-9h15
9h15-9h30
9h30-10h00

Je ne vois pas a part faire un curseur surtout que
plusieurs enregistrement peuvent avoir un début au








même
moment.

Comment faire ?



--
Frédéric BROUARD - expert SQL, spécialiste : SQL






Server /

Delphi / web

Livre SQL - col. Référence :



http://sqlpro.developpez.com/bookSQL.html

Le site du SQL, pour débutants et pros :



http://sqlpro.developpez.com

****************** mailto:



******************

.









--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server /


Delphi / web
Livre SQL - col. Référence :


http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros :


http://sqlpro.developpez.com
****************** mailto:


******************

.



Avatar
Fred BROUARD
utiliser un agrégat genre MAX...

A +

olivier a écrit:
Merci de ta réponse,

J'ai fais une requétes qui me renvoie mes enreg mais j'ai
parfois des doublons car j'ai pour un quart d'heure deux
enrg qui peuvent correpondre :
1 dispo et 1 RV alors que je ne veux que le meeting pour
cette ligne

Comment faire pour avoir le meeting sur ce quart d'heure
mais que ma dispo puisse apparaitre sur les quart d'heure
ou elle correpond seul ?

MErci

-----Message d'origine-----
A l'aide d'une jointure externe gauche associé avec un



COALESCE :


SELECT ..., COALESCE(ColonneAction, 'dispo') AS Action




FROM MaTable T



LEFT OUTER JOIN T_TRANCHE_HORAIRE_TRH TRH
ON TRH.TRH_HEURE_MIN <= T.Monheure
AND TRH.TRH_HEURE_MAX > T.Monheure

A +



olivier a écrit:

Bonjour,

merci de votre réponse mais ce que je voulais c'étais
générer une ligne vide quand aucun enregistrement ne
correpondait, donc j'ai fais une jointure gauche,

per contre ce qui m'interresserais c'est de pourvoir





avoir

des enregistrement qui correpondent a une plage d'heure
ex :

dispo 9-19 h
meeting 9 10 h
meeting 10 11 h
rien

Donc mon resultat serait :

meeting 9 10
meeting 10 11
dispo 11 12
dispo 12 13

en gros je voudrais générer des lignes suivant les
disponibilités...comment faire ?




-----Message d'origine-----
ajouter une table de tranche d'horaire de la sorte :

CREATE TABLE T_TRANCHE_HORAIRE_TRH
(TRH_ID INTEGER NOT NULL PRIMARY KEY,
TRH_HEURE_MIN DATETIME NOT NULL,
TRH_HEURE_MAX DATETIME NOT NULL)

et la remplir avec les horaires pour une date bidon



(1/1/1900)


sur 24h par quart d'heure.

Après faire une non equi jointure par intervalle.

Exemple :

SELECT ...



FROM MaTable T




INNER JOIN T_TRANCHE_HORAIRE_TRH TRH
ON TRH.TRH_HEURE_MIN <= T.Monheure
AND TRH.TRH_HEURE_MAX > T.Monheure

Sur les problématiques de temps :
http://sqlpro.developpez.com/Planning/SQL_PLN.html

A +

Olivier a écrit:


Bonjour,

j'aimerais réaliser une requéte qui donne ce resultat :

j'ai des enregitrement qui sont segmenté par horaire





ex :


9 h 19 h.

jaimerais que ma requéte me sorte un resultat par









quert-

d'heure ex :

9h00-9h15
9h15-9h30
9h30-10h00

Je ne vois pas a part faire un curseur surtout que
plusieurs enregistrement peuvent avoir un début au









même

moment.

Comment faire ?



--
Frédéric BROUARD - expert SQL, spécialiste : SQL







Server /

Delphi / web


Livre SQL - col. Référence :



http://sqlpro.developpez.com/bookSQL.html


Le site du SQL, pour débutants et pros :



http://sqlpro.developpez.com


****************** mailto:



******************


.





--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server /



Delphi / web

Livre SQL - col. Référence :



http://sqlpro.developpez.com/bookSQL.html

Le site du SQL, pour débutants et pros :



http://sqlpro.developpez.com

****************** mailto:



******************

.









--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************