1
votes

construire la somme de plusieurs résultats de sous-requêtes

J'essaye de construire une somme des résultats de plusieurs sous-requêtes. J'ai de nombreuses périodes définies avec deux variables:

select  datediff(day, @left1, @return1 )

select  datediff(day, @left2, @return2 )

select  datediff(day, @left3, @return3 )

Ensuite, je calcule les jours entre ces deux dates mais j'aimerais finalement les additionner et obtenir un total:

declare 
@left1 date = '2014-06-25',
@return1 date ='2014-08-21',

 @left2 date = '2014-10-29',
 @return2 date = '2015-03-15',

@left3 date = '2015-04-21',
@return3 date = '2015-09-19'

J'ai pensé aux CTE mais ça n'a pas marché. Quelle est la bonne façon de procéder?


0 commentaires

4 Réponses :


4
votes

À peu près sûr, vous avez juste besoin d'un ajout de base.

select datediff(day, @left1, @return1 )
     + datediff(day, @left2, @return2 )
     + datediff(day, @left3, @return3 )


0 commentaires

2
votes
SELECT SUM(DATEDIFF(DAY,[LEFT],[Return])) AS TOTALDAYS
FROM
(
  select @left1 AS [Left],@return1 AS [Return]
  UNION ALL
  select @left2 AS [Left],@return2 AS [Return]
  UNION ALL
  select @left3 AS [Left],@return3 AS [Return]
) X

1 commentaires

Votre raccourci n'était pas faux, mais vous aimerez peut-être ce blog . '



2
votes

Cette requête peut vous aider:

Select 
    sum(NbDay) as totaldiffday
From (
        select  datediff(day, @left1, @return1 ) As NbDay
        Union
        select  datediff(day, @left2, @return2 ) As NbDay 
        Union 
        select  datediff(day, @left3, @return3 ) As NbDay
) as SubQuery


0 commentaires

3
votes
select  
   datediff(day, @left1, @return1 ) + 
   datediff(day, @left2, @return2 ) + 
   datediff(day, @left3, @return3 )

0 commentaires