我有两张桌子:
1- Personale
2- Presenze
我想像每个月一样计算每个不同员工的Work_Hours和Holiday_Hours,如下表所示。 我想选择2个月之间的时间段。例如来自1月份的' 01到3月' 03
Persoanl_ID |名称|月| Work_Hours | Holiday_Hours | TotalWork_Hours |
++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++
J12345678K |约翰| __ 07 __ |的 _____ 150 __ |的 ________ 08 __ |的 __________ 142 __ |
++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++
J12345678K |约翰| __ 08 __ |的 _____ 144 __ |的 _________ 0 __ |的 __________ 144 __ |
++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++
TOTAL ____________ 2 ___ |的 ____ 294_ | __________ 8 | __________ 288
你能帮帮我吗?
答案 0 :(得分:0)
如果你的意思是计算小时数,那么你可以使用下面的SQL查询:
select distinct a.Personal_ID ,a.Name, b.Month, Sum (b.Work_hours),Sum (b.Holiday_hours),Sum (b.Work_hours)+ Sum (b.Holiday_hours) As TotalWork_hours
from Personale as a , Presenze as b
where a.Persoanl_ID = b.Persoanl_ID
Group By b.Month
此查询将为您提供每个月的结果,如果您想根据需要拆分日期我更喜欢使用DateTime数据类型,这将更容易按日期过滤
答案 1 :(得分:0)
试试这个:
select p.Persoanl_ID,
p.Name,
pz.Month,
sum(pz.Work_Hours) as Work_Hours,
sum(pz.Holiday_Hours) as Holiday_Hours,
sum(pz.Work_Hours) + sum(pz.Holiday_Hours) as Total_Hours
from Personale p, Presenze pz
where p.Persoanl_ID = pz.Persoanl_ID
and pz.Month between '01' and '03'
group by p.Persoanl_ID, p.Name, pz.Month;
答案 2 :(得分:0)
由于您希望仅查看特定时期的结果,我认为以下查询可以给您答案:
SELECT b.Persoanl_ID Persoanl_ID ,a.Name Name, b.Month Month, b.Work_Hours
Work_Hours, b.Holiday_Hours Holiday_Hours,
(b.Work_hours + b.Holiday_hours) as TotalWork_Hours
FROM Personale a INNER JOIN Presenze b
ON a.Persoanl_ID = b.Persoanl_ID
WHERE b.Month BETWEEN 01 AND 03
GROUP BY b.Personal_ID , a.Name , b.Month , b.Work_Hours , b.Holiday_Hours ;