OVH Cloud OVH Cloud

Une requête SQL : totalisations

6 réponses
Avatar
Gérard Ducouret
Bonjour,

J'ai besoin d'effectuer la requête suivante dans une table de Project
Server: MSP_VIEW_PROJ_ASSN_TP_BY_DAY
Les deux champs suivants contiennent des dates qui se suivent de jour en
jour :
- AssignmentTimeStart
- AssignmentTimeFinish
Au mois M de l'année 2005, je voudrais:
- Le total cumulé du champ AssignmentTimeBaselineWork
- Le total pour le mois M de ce même champ AssignmentTimeBaselineWork
- Le reste cumulé entre le mois M et Décembre 2005 pour ce même champ
Les experts de ce news group savent sûrement expliquer à un néophyte comment
faire cela !
Merci d'avance

Gérard

6 réponses

Avatar
Fred BROUARD
Gérard Ducouret a écrit:
Bonjour,

J'ai besoin d'effectuer la requête suivante dans une table de Project
Server: MSP_VIEW_PROJ_ASSN_TP_BY_DAY
Les deux champs suivants contiennent des dates qui se suivent de jour en
jour :
- AssignmentTimeStart
- AssignmentTimeFinish
Au mois M de l'année 2005, je voudrais:
- Le total cumulé du champ AssignmentTimeBaselineWork
- Le total pour le mois M de ce même champ AssignmentTimeBaselineWork
- Le reste cumulé entre le mois M et Décembre 2005 pour ce même champ
Les experts de ce news group savent sûrement expliquer à un néophyte comment
faire cela !
Merci d'avance



Il suffit d'implémenter une table des dates (calendrier) et tout deviendra plus
simple.
Lisez l'article que j'ai écrit à ce sujet :
http://sqlpro.developpez.com/cours/gestiontemps/

Pour que nous puissions vous aider, poster le DDL (CREATE TABLE ...) des tables
afin que nous puissions reproduire votre modèle et vous donner les bonnes requêtes.

A +


Gérard








--
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
Gérard Ducouret
Merci Fred,

Le script VIEWTBLS.SQL qui crée les tables SQL Server pour Project Server
fait 206 Ko. N'est-ce pas trop gros pour un fichier attaché ?
Sinon, je me dépêche de le poster !

Gérard

"Fred BROUARD" a écrit dans le message de
news:%


Gérard Ducouret a écrit:
> Bonjour,
>
> J'ai besoin d'effectuer la requête suivante dans une table de Project
> Server: MSP_VIEW_PROJ_ASSN_TP_BY_DAY
> Les deux champs suivants contiennent des dates qui se suivent de jour en
> jour :
> - AssignmentTimeStart
> - AssignmentTimeFinish
> Au mois M de l'année 2005, je voudrais:
> - Le total cumulé du champ AssignmentTimeBaselineWork
> - Le total pour le mois M de ce même champ AssignmentTimeBaselineWork
> - Le reste cumulé entre le mois M et Décembre 2005 pour ce même champ
> Les experts de ce news group savent sûrement expliquer à un néophyte


comment
> faire cela !
> Merci d'avance

Il suffit d'implémenter une table des dates (calendrier) et tout deviendra


plus
simple.
Lisez l'article que j'ai écrit à ce sujet :
http://sqlpro.developpez.com/cours/gestiontemps/

Pour que nous puissions vous aider, poster le DDL (CREATE TABLE ...) des


tables
afin que nous puissions reproduire votre modèle et vous donner les bonnes


requêtes.

A +

>
> Gérard
>
>
>
>
>

--
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
Fred BROUARD
sélectionne uniquement les tables concernées...

A +

Gérard Ducouret a écrit:
Merci Fred,

Le script VIEWTBLS.SQL qui crée les tables SQL Server pour Project Server
fait 206 Ko. N'est-ce pas trop gros pour un fichier attaché ?
Sinon, je me dépêche de le poster !

Gérard

"Fred BROUARD" a écrit dans le message de
news:%


Gérard Ducouret a écrit:

Bonjour,

J'ai besoin d'effectuer la requête suivante dans une table de Project
Server: MSP_VIEW_PROJ_ASSN_TP_BY_DAY
Les deux champs suivants contiennent des dates qui se suivent de jour en
jour :
- AssignmentTimeStart
- AssignmentTimeFinish
Au mois M de l'année 2005, je voudrais:
- Le total cumulé du champ AssignmentTimeBaselineWork
- Le total pour le mois M de ce même champ AssignmentTimeBaselineWork
- Le reste cumulé entre le mois M et Décembre 2005 pour ce même champ
Les experts de ce news group savent sûrement expliquer à un néophyte





comment

faire cela !
Merci d'avance



Il suffit d'implémenter une table des dates (calendrier) et tout deviendra



plus

simple.
Lisez l'article que j'ai écrit à ce sujet :
http://sqlpro.developpez.com/cours/gestiontemps/

Pour que nous puissions vous aider, poster le DDL (CREATE TABLE ...) des



tables

afin que nous puissions reproduire votre modèle et vous donner les bonnes



requêtes.

A +


Gérard








--
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 ***********************









--
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
Med Bouchenafa
Cela devrait faire l'affaire a une nuance pres( Difference entre
AssignmentTimeStart et AssignmentTimeFinish)
Il faut juste remplacer M par la valeur de ton mois

-- Le total cumulé au mois M de l'année 2005
SELECT SUM(AssignmentTimeBaselineWork)
FROM dbo.MSP_VIEW_PROJ_ASSN_TP_BY_DAY
WHERE YEAR(AssignmentTimeStart) 05
AND MONTH(AssignmentTimeStart) <= M

GO

-- Le total pour le mois M et l'année 2005
SELECT SUM(AssignmentTimeBaselineWork)
FROM dbo.MSP_VIEW_PROJ_ASSN_TP_BY_DAY
WHERE YEAR(AssignmentTimeStart) = 2005
AND MONTH(AssignmentTimeStart) = M

GO
- - Le reste cumulé entre le mois M et Décembre pour l'année 2005
SELECT SUM(AssignmentTimeBaselineWork)
FROM dbo.MSP_VIEW_PROJ_ASSN_TP_BY_DAY
WHERE YEAR(AssignmentTimeStart) = 2005
AND MONTH(AssignmentTimeStart) BETWEEN M AND 12


--
Bien cordialement
Med Bouchenafa


"Gérard Ducouret" wrote in message
news:%
Bonjour,

J'ai besoin d'effectuer la requête suivante dans une table de Project
Server: MSP_VIEW_PROJ_ASSN_TP_BY_DAY
Les deux champs suivants contiennent des dates qui se suivent de jour en
jour :
- AssignmentTimeStart
- AssignmentTimeFinish
Au mois M de l'année 2005, je voudrais:
- Le total cumulé du champ AssignmentTimeBaselineWork
- Le total pour le mois M de ce même champ AssignmentTimeBaselineWork
- Le reste cumulé entre le mois M et Décembre 2005 pour ce même champ
Les experts de ce news group savent sûrement expliquer à un néophyte
comment
faire cela !
Merci d'avance

Gérard







Avatar
Fred BROUARD
le seul hic, c'est que s'il n'y a pas de date pour un mois donné alors ce mois
sera absent de la réponse...

A +



Med Bouchenafa a écrit:
Cela devrait faire l'affaire a une nuance pres( Difference entre
AssignmentTimeStart et AssignmentTimeFinish)
Il faut juste remplacer M par la valeur de ton mois

-- Le total cumulé au mois M de l'année 2005
SELECT SUM(AssignmentTimeBaselineWork)
FROM dbo.MSP_VIEW_PROJ_ASSN_TP_BY_DAY
WHERE YEAR(AssignmentTimeStart) 05
AND MONTH(AssignmentTimeStart) <= M

GO

-- Le total pour le mois M et l'année 2005
SELECT SUM(AssignmentTimeBaselineWork)
FROM dbo.MSP_VIEW_PROJ_ASSN_TP_BY_DAY
WHERE YEAR(AssignmentTimeStart) = 2005
AND MONTH(AssignmentTimeStart) = M

GO
- - Le reste cumulé entre le mois M et Décembre pour l'année 2005
SELECT SUM(AssignmentTimeBaselineWork)
FROM dbo.MSP_VIEW_PROJ_ASSN_TP_BY_DAY
WHERE YEAR(AssignmentTimeStart) = 2005
AND MONTH(AssignmentTimeStart) BETWEEN M AND 12





--
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
Gérard Ducouret
Merci Med,
Ca marche !

Gérard Ducouret

"Med Bouchenafa" a écrit dans le message de
news:
Cela devrait faire l'affaire a une nuance pres( Difference entre
AssignmentTimeStart et AssignmentTimeFinish)
Il faut juste remplacer M par la valeur de ton mois

-- Le total cumulé au mois M de l'année 2005
SELECT SUM(AssignmentTimeBaselineWork)
FROM dbo.MSP_VIEW_PROJ_ASSN_TP_BY_DAY
WHERE YEAR(AssignmentTimeStart) 05
AND MONTH(AssignmentTimeStart) <= M

GO

-- Le total pour le mois M et l'année 2005
SELECT SUM(AssignmentTimeBaselineWork)
FROM dbo.MSP_VIEW_PROJ_ASSN_TP_BY_DAY
WHERE YEAR(AssignmentTimeStart) = 2005
AND MONTH(AssignmentTimeStart) = M

GO
- - Le reste cumulé entre le mois M et Décembre pour l'année 2005
SELECT SUM(AssignmentTimeBaselineWork)
FROM dbo.MSP_VIEW_PROJ_ASSN_TP_BY_DAY
WHERE YEAR(AssignmentTimeStart) = 2005
AND MONTH(AssignmentTimeStart) BETWEEN M AND 12


--
Bien cordialement
Med Bouchenafa


"Gérard Ducouret" wrote in message
news:%
> Bonjour,
>
> J'ai besoin d'effectuer la requête suivante dans une table de Project
> Server: MSP_VIEW_PROJ_ASSN_TP_BY_DAY
> Les deux champs suivants contiennent des dates qui se suivent de jour en
> jour :
> - AssignmentTimeStart
> - AssignmentTimeFinish
> Au mois M de l'année 2005, je voudrais:
> - Le total cumulé du champ AssignmentTimeBaselineWork
> - Le total pour le mois M de ce même champ AssignmentTimeBaselineWork
> - Le reste cumulé entre le mois M et Décembre 2005 pour ce même champ
> Les experts de ce news group savent sûrement expliquer à un néophyte
> comment
> faire cela !
> Merci d'avance
>
> Gérard
>
>
>
>
>