OVH Cloud OVH Cloud

Calendrier

7 réponses
Avatar
Dominique Peralta
Bonjour,
je voudrais, à partir d'un SELECT, faire afficher les dates de l'année en
cours.
J'ai déjà vu un truc comme cela dans des écrits à Fred, mais je ne retrouve
plus où.
Merci de votre aide.

7 réponses

Avatar
Patrice
Du côté de http://sqlpro.developpez.com/cours/gestiontemps/ sans doute...

Je ne sais pas exactement ce que tu veux faire mais généralement on utilise
une table de dates notamment dès que tu voudras associer des attributs à ces
dates...
--
Patrice

"Dominique Peralta" a écrit dans le message de
news:
Bonjour,
je voudrais, à partir d'un SELECT, faire afficher les dates de l'année en
cours.
J'ai déjà vu un truc comme cela dans des écrits à Fred, mais je ne
retrouve
plus où.
Merci de votre aide.




Avatar
SQLpro [MVP]
Dominique Peralta a écrit :
Bonjour,
je voudrais, à partir d'un SELECT, faire afficher les dates de l'année en
cours.
J'ai déjà vu un truc comme cela dans des écrits à Fred, mais je ne retrouve
plus où.
Merci de votre aide.




http://sqlpro.developpez.com/cours/gestiontemps/

A +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Avatar
Dominique Peralta
Je voudrais faire une jointure sur une sous-requête qui me renverrait la
liste des jours de l'année en cours. Si je crée une table, il faudrait que
je pense à la mettre à jour tous les ans :-(
J'avais jeté un oeil au lien que tu me donnes, mais tout cela est bien
compliqué par rapport à ce que je veux faire.
Merci.

"Patrice" a écrit dans le message de
news:
Du côté de http://sqlpro.developpez.com/cours/gestiontemps/ sans doute...

Je ne sais pas exactement ce que tu veux faire mais généralement on


utilise
une table de dates notamment dès que tu voudras associer des attributs à


ces
dates...
--
Patrice

"Dominique Peralta" a écrit dans le message de
news:
> Bonjour,
> je voudrais, à partir d'un SELECT, faire afficher les dates de l'année


en
> cours.
> J'ai déjà vu un truc comme cela dans des écrits à Fred, mais je ne
> retrouve
> plus où.
> Merci de votre aide.
>
>




Avatar
Dominique Peralta
J'avais déjà parcouru ce cours, comme les autes du reste, mais je n'ai pas
trouvé le SELECT tout simple qui liste les dates. Comme je suis sûr que t'as
ça en stock, et que je suis pris par le temps, je pensais que tu aurais pu
me donner la syntaxe ;-)

"SQLpro [MVP]" a écrit dans le message de
news:%
Dominique Peralta a écrit :
> Bonjour,
> je voudrais, à partir d'un SELECT, faire afficher les dates de l'année


en
> cours.
> J'ai déjà vu un truc comme cela dans des écrits à Fred, mais je ne


retrouve
> plus où.
> Merci de votre aide.
>
>
http://sqlpro.developpez.com/cours/gestiontemps/

A +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************


Avatar
Patrice
Rien ne t'empêche de mettre plus que l'année en cours dans cette table.
Sinon tu peux éventuellement créer une fonction qui remplira (avec une
simple boucle) une variable table avec les dates de l'année en cours avant
de la retourner ce qui permettrait éventuellement ensuite de passer vers une
table si le besoin s'en fait sentir.

Quelque chose comme :

CREATE FUNCTION Jours(@Année INT) RETURNS @t TABLE(Jour SMALLDATETIME) AS
BEGIN
DECLARE @j SMALLDATETIME
SET @jÊST(@Année AS VARCHAR(4))+'0101'
WHILE YEAR(@j)=@Année
BEGIN
INSERT INTO @t(Jour) VALUES (@j)
SET @jÚTEADD(day,1,@j)
END
RETURN
END
GO

--
Patrice

"Dominique Peralta" a écrit dans le message de
news: %
Je voudrais faire une jointure sur une sous-requête qui me renverrait la
liste des jours de l'année en cours. Si je crée une table, il faudrait que
je pense à la mettre à jour tous les ans :-(
J'avais jeté un oeil au lien que tu me donnes, mais tout cela est bien
compliqué par rapport à ce que je veux faire.
Merci.

"Patrice" a écrit dans le message de
news:
Du côté de http://sqlpro.developpez.com/cours/gestiontemps/ sans doute...

Je ne sais pas exactement ce que tu veux faire mais généralement on


utilise
une table de dates notamment dès que tu voudras associer des attributs à


ces
dates...
--
Patrice

"Dominique Peralta" a écrit dans le message de
news:
> Bonjour,
> je voudrais, à partir d'un SELECT, faire afficher les dates de l'année


en
> cours.
> J'ai déjà vu un truc comme cela dans des écrits à Fred, mais je ne
> retrouve
> plus où.
> Merci de votre aide.
>
>








Avatar
Dominique Peralta
C'est vrai que j'ai du mal à penser aux UDFs.
Je vais faire comme ça.
Merci beaucoup.

"Patrice" a écrit dans le message de
news:
Rien ne t'empêche de mettre plus que l'année en cours dans cette table.
Sinon tu peux éventuellement créer une fonction qui remplira (avec une
simple boucle) une variable table avec les dates de l'année en cours avant
de la retourner ce qui permettrait éventuellement ensuite de passer vers


une
table si le besoin s'en fait sentir.

Quelque chose comme :

CREATE FUNCTION Jours(@Année INT) RETURNS @t TABLE(Jour SMALLDATETIME) AS
BEGIN
DECLARE @j SMALLDATETIME
SET @jÊST(@Année AS VARCHAR(4))+'0101'
WHILE YEAR(@j)=@Année
BEGIN
INSERT INTO @t(Jour) VALUES (@j)
SET @jÚTEADD(day,1,@j)
END
RETURN
END
GO

--
Patrice

"Dominique Peralta" a écrit dans le message de
news: %
> Je voudrais faire une jointure sur une sous-requête qui me renverrait la
> liste des jours de l'année en cours. Si je crée une table, il faudrait


que
> je pense à la mettre à jour tous les ans :-(
> J'avais jeté un oeil au lien que tu me donnes, mais tout cela est bien
> compliqué par rapport à ce que je veux faire.
> Merci.
>
> "Patrice" a écrit dans le message de
> news:
>> Du côté de http://sqlpro.developpez.com/cours/gestiontemps/ sans


doute...
>>
>> Je ne sais pas exactement ce que tu veux faire mais généralement on
> utilise
>> une table de dates notamment dès que tu voudras associer des attributs


à
> ces
>> dates...
>> --
>> Patrice
>>
>> "Dominique Peralta" a écrit dans le message


de
>> news:
>> > Bonjour,
>> > je voudrais, à partir d'un SELECT, faire afficher les dates de


l'année
> en
>> > cours.
>> > J'ai déjà vu un truc comme cela dans des écrits à Fred, mais je ne
>> > retrouve
>> > plus où.
>> > Merci de votre aide.
>> >
>> >
>>
>>
>
>




Avatar
SQLpro [MVP]
Dominique Peralta a écrit :
C'est vrai que j'ai du mal à penser aux UDFs.
Je vais faire comme ça.
Merci beaucoup.



C'est BEAUCOUP moins performant qu'une jointure en général...

En effet une fonction oblige à lire séquentiellement les données.
Une jointure permet de lire les données d'après les index.

A +



"Patrice" a écrit dans le message de
news:
Rien ne t'empêche de mettre plus que l'année en cours dans cette table.
Sinon tu peux éventuellement créer une fonction qui remplira (avec une
simple boucle) une variable table avec les dates de l'année en cours avant
de la retourner ce qui permettrait éventuellement ensuite de passer vers


une
table si le besoin s'en fait sentir.

Quelque chose comme :

CREATE FUNCTION Jours(@Année INT) RETURNS @t TABLE(Jour SMALLDATETIME) AS
BEGIN
DECLARE @j SMALLDATETIME
SET @jÊST(@Année AS VARCHAR(4))+'0101'
WHILE YEAR(@j)=@Année
BEGIN
INSERT INTO @t(Jour) VALUES (@j)
SET @jÚTEADD(day,1,@j)
END
RETURN
END
GO

--
Patrice

"Dominique Peralta" a écrit dans le message de
news: %
Je voudrais faire une jointure sur une sous-requête qui me renverrait la
liste des jours de l'année en cours. Si je crée une table, il faudrait




que
je pense à la mettre à jour tous les ans :-(
J'avais jeté un oeil au lien que tu me donnes, mais tout cela est bien
compliqué par rapport à ce que je veux faire.
Merci.

"Patrice" a écrit dans le message de
news:
Du côté de http://sqlpro.developpez.com/cours/gestiontemps/ sans






doute...
Je ne sais pas exactement ce que tu veux faire mais généralement on


utilise
une table de dates notamment dès que tu voudras associer des attributs






à
ces
dates...
--
Patrice

"Dominique Peralta" a écrit dans le message






de
news:
Bonjour,
je voudrais, à partir d'un SELECT, faire afficher les dates de








l'année
en
cours.
J'ai déjà vu un truc comme cela dans des écrits à Fred, mais je ne
retrouve
plus où.
Merci de votre aide.



















--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************