2012-09-21 1 views
1

Je suis en train de courir à travers une table et obtenir la somme des cependant colonne mins il me dit toujours que mins est pas un nom de colonne valideSQL Server SUM Problème

SELECT 
    acs.cid, 
    DATEDIFF (n, acs.StartTime, acs.EndTime) as prepromomins, 
    CASE 
     WHEN (p.multiplier is null) THEN DATEDIFF (n , acs.StartTime, acs.EndTime) 
     ELSE (DATEDIFF (n , acs.StartTime , acs.EndTime) * p.multiplier) 
    END AS mins 
FROM 
    activecards as acs 
    LEFT JOIN Promotions as p 
    ON acs.StartTime > p.StartTime and acs.EndTime < p.EndTime 
+4

Pouvez-vous nous montrer la requête où vous essayez d'effectuer SUM sur 'mins'? – WojtusJ

+1

Est-ce votre requête complète? S'il vous plaît nous montrer la requête complète et les schémas de table en question. –

+4

'DATEDIFF (minute, acs.StartTime, acs.EndTime) * COALESCE (p.multiplier, 1)' éliminerait complètement le besoin de l'expression 'CASE'. –

Répondre

0

Essayez celui-ci:

SELECT SUM(DATEDIFF(n, acs.StartTime, acs.EndTime) * ISNULL(p.multiplier,1)) AS TotalMins 
FROM activecards as acs 
LEFT JOIN Promotions as p 
ON acs.StartTime > p.StartTime and acs.EndTime < p.EndTime 
+0

celui-ci fonctionne, j'ai dû ajouter acs.cid au select et grouper par ce champ pour montrer les totaux pour chaque cid unique – cobra2599