2012-02-16 1 views
1

Salut, je suis aux prises avec le problème suivant. J'ai deux tables une avec le nom de l'information de l'employé et les ID de la seconde est une table de feuille de temps.TSQL- besoin d'aide dans la journée totale pas la semaine

Name  date_entered    durhr part_no  TotalHours 
Ajay Singh 2012-02-06 09:58:02.440 0.25 ADM-DESKTOP  43 
Ajay Singh 2012-02-08 07:47:50.720 0.25 ADM-DESKTOP  43 
Ajay Singh 2012-02-08 11:15:17.110 0.25 ADM-DESKTOP  43 
Ajay Singh 2012-02-09 09:35:20.360 0.25 ADM-DESKTOP  43 
Ajay Singh 2012-02-06 09:57:43.373 0.5 ADM-DESKTOP  43 
Ajay Singh 2012-02-06 09:57:52.407 0.5 ADM-DESKTOP  43 
Ajay Singh 2012-02-09 09:35:09.193 0.5 ADM-DESKTOP  43 
Ajay Singh 2012-02-10 14:23:38.893 0.5 ADM-DESKTOP  43 
Ajay Singh 2012-02-09 09:16:36.327 0.75 AD-CREATE  43 
Ajay Singh 2012-02-09 09:24:05.170 1  AD-CREATE  43 
Ajay Singh 2012-02-10 11:49:16.670 1  ADM-DESKTOP  43 
Ajay Singh 2012-02-10 14:23:27.577 1  ADM-DESKTOP  43 
Ajay Singh 2012-02-08 11:14:02.247 1  ADM-DESKTOP  43 

Ce que je dois totaliser est le jour de la semaine jusqu'à pas ma requête totalise la semaine .. voici ce que j'ai jusqu'à présent

select (e.Firstname + ' ' + e.Lastname) as name, p.date_entered, p.durhr, p.part_no, th.TotalHours 

from ProdUseExt p 
JOIN Employee as e on e.employeeid = p.employeeid 
JOIN (select employeeid, sum(durhr) as totalhours from ProdUseExt where date_Entered between '2/5/2012' and '2/11/2012' group by employeeid) as th on th.employeeid = p.employeeid 

where e.OSVendor ='myVendor' 

and p.date_Entered between '2/5/2012' and '2/11/2012' 
group by e.Firstname,e.Lastname, p.date_entered, p.durhr, p.part_no, th.TotalHours 
order by e.Firstname,e.lastname, p.durhr 
+0

Je vois ce que vous dites se précipiter Ne pas aider je fixe le nom de colonnes. mais je ne suis pas votre second point. – Mike

Répondre

0

Essayez ce, CONVERT (DATE,) sera convertissez-le en type de données de date en supprimant l'heure. La sous-requête jointure est également inutile

select (e.Firstname + ' ' + e.Lastname) as name, CONVERT(DATE, p.date_entered) p_date_entered, p.part_no, sum(P.durhr) as TotalHours 
from ProdUseExt p 
JOIN Employee as e on e.employeeid = p.employeeid 
where e.OSVendor ='myVendor' 

and p.date_Entered between '2/5/2012' and '2/11/2012' 
group by e.Firstname,e.Lastname, CONVERT(DATE, p.date_entered), p.part_no 
order by e.Firstname,e.lastname, p.durhr 
+0

Ok, je vois maintenant si je faisais mon erreur en faisant de cette façon plus compliquée que nécessaire, je l'apprécie vraiment. – Mike

Questions connexes