2013-05-28 5 views
0

Je connais très peu MS-SQL, mais j'ai besoin d'effectuer un rapport.Fonction de recherche et de comparaison SQL

J'ai cette requête:

Select 
a.HPD_CI as HPD_CI_Grouped, 
count(a.HPD_CI) as HPDCant, b.submit_date 
    From 
    HPD_Help_Desk a, Tiempos_Grupos b--, Tiempos_grupos b 
    GROUP BY a.HPD_CI, b.submit_date 

Et le résultat de ceci est:

HPD_CI_GROUPED HPDCant SUBMIT_DATE 
ADSL1   1 2013-04-10 19:22:59.0 
ENL001   4 2013-04-10 19:22:59.0 
OSE001  18 2013-04-10 19:22:59.0 
OSE002   9 2013-04-10 19:22:59.0 
OSE003   1 2013-04-10 19:22:59.0 
REF0001  44 2013-04-10 19:22:59.0 
REF0002  11 2013-04-10 19:22:59.0 
REF0003  8 2013-04-10 19:22:59.0 

En fait, ce que je fais est de compter, mais ce que je dois est de comparer les SUBMIT_DATE avec la suivante, et COUNT seulement si le prochain submit_date existe entre une plage définie (jours). Disons que je définis "6 jours" ... J'ai trouvé que OSE001 a 2013-04-10 19: 22: 59.0 comme submit_date, S'il y a un autre OSE001 entre 2013-04-10 19: 22: 59.0 et

2013-04-16 19: 22: 59.0, alors il faut compter, sinon ne pas.

Il pourrait être quelque chose de similaire à:

COUNT(CASE Submit_Date - **NEXT**submit_date < 6 days then 1 else 0 end) 

(bien sûr cet exemple ne fonctionne pas parce que je ne sais pas comment appeler * PROCHAINE * Date)

+1

Ne devriez-vous pas avoir une condition de jointure dans la clause 'from'? –

+0

Parce que je ne sais pas trop sur SQL. Je ne connaissais pas la fonction JOIN. Merci! – user2430140

Répondre

0

je peux » t dire de votre question si vous avez deux tables déjà ou non, mais l'idée est quelque chose comme ceci:

SELECT a.HPD_CI as HPD_CI_Grouped 
     ,a.submit_date 
     ,COUNT(*) 
FROM HPD_Help_Desk a 
JOIN Tiempos_Grupos b 
    ON a.HPD_CI = b.HPD_CI 
    AND b.submit_date BETWEEN a.submit_date AND DATEADD(DAY,6,a.submit_date) 
GROUP BY a.HPD_CI, a.submit_date 

ENTRE l'utilisation dans les critères de jointure permet vous recule chaque ligne dans les 6 jours pour la même valeur HPD_CI.

+0

Merci beaucoup! Tu m'as sauvé la migraine! – user2430140