Why is my sum function not working properly?

ozzy t
ozzy t used Ask the Experts™
on
I am trying to do a simple sum on the "Booking_Factor" column(int) and it is not summing at all as if nothing , the values are the same, any idea? Thank You.
SELECT distinct 

      RES.Description,
      Available_Date,
      --LOC.Scheduling_Location_ID,
      --DEPT.Description,
      --Day_Type_ID,
      --Available_Time_Block_ID,
      --Available_Time_Block_TS,
      Start_Time,
      End_Time,
      Usual_Appt_Duration,
      SUM(Booking_Factor)AS Capacity
      
     -- AVAILBLOCK.Activity_Type_ID,
     -- ELIG.Appointment_Category_ID AS Elig_Appointment_Category_ID,
     --INELIG.Appointment_Category_ID AS Inelig_Appointment_Category_ID 
   
FROM PM.Available_Days AVAILDAY WITH (NOLOCK)
      LEFT JOIN PM.Available_Time_Blocks AVAILBLOCK WITH (NOLOCK) ON AVAILBLOCK.Available_Day_ID = AVAILDAY.Available_Day_ID
      --LEFT JOIN PM.Scheduling_Locations LOC WITH (NOLOCK) ON LOC.Scheduling_Location_ID = AVAILDAY.Scheduling_Location_ID
      --LEFT JOIN PM.Scheduling_Departments DEPT ON DEPT.Scheduling_Department_ID = AVAILDAY.Scheduling_Department_ID
      LEFT JOIN PM.Resources RES WITH (NOLOCK) ON RES.Resource_ID = AVAILDAY.Resource_ID
      --LEFT JOIN PM.Activity_Elig_Appt_Categs ELIG WITH (NOLOCK) ON ELIG.Activity_Type_ID = AVAILBLOCK.Activity_Type_ID
      --LEFT JOIN PM.Activity_Inelig_Appt_Categs INELIG WITH (NOLOCK) ON INELIG.Activity_Type_ID = AVAILBLOCK.Activity_Type_ID


WHERE AVAILDAY.Available_Date = '2017-03-09'
AND RES.Description = 'REYNOLDS, EUGENE II'


group by
 RES.Description,
 Available_Date,
 Start_Time,
 End_Time,
 Usual_Appt_Duration
 

Open in new window

Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Jim HornSQL Server Data Dude
Most Valuable Expert 2013
Author of the Year 2015

Commented:
>and it is not summing at all as if nothing
Define in simple English what you wish to sum Booking_Factor by.  RES.Description?  Available_Date_ID?

Then eyeballeth all of the columns in your GROUP BY clause, especially Start_Time and End_Time.  Are they unique?  If yes, that kinda defeats the purpose of doing the SUM, and you'll have to remove those columns and possibly others to get the correct sum amount.
IT Engineer
Distinguished Expert 2017
Commented:
Is you Available_Date column a date or a datetime data type? If the last one, then you should use a 24h interval to get all records for that day.
Also, you don't need the DISTINCT keyword since you're using GROUP BY:
SELECT  
      RES.Description,
      Available_Date,
      Start_Time,
      End_Time,
      Usual_Appt_Duration,
      SUM(Booking_Factor)AS Capacity     
FROM PM.Available_Days AVAILDAY WITH (NOLOCK)
      LEFT JOIN PM.Available_Time_Blocks AVAILBLOCK WITH (NOLOCK) ON AVAILBLOCK.Available_Day_ID = AVAILDAY.Available_Day_ID
      LEFT JOIN PM.Resources RES WITH (NOLOCK) ON RES.Resource_ID = AVAILDAY.Resource_ID
WHERE AVAILDAY.Available_Date BETWEEN '20170309' AND '20170310'
	AND RES.Description = 'REYNOLDS, EUGENE II'
GROUP BY
 RES.Description,
 Available_Date,
 Start_Time,
 End_Time,
 Usual_Appt_Duration

Open in new window

ozzy tDeveloper/Health Informatics

Author

Commented:
Thank You for clarifying ! Really helped me out.
Ensure you’re charging the right price for your IT

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden using our free interactive tool and use it to determine the right price for your IT services. Start calculating Now!

Vitor MontalvãoIT Engineer
Distinguished Expert 2017

Commented:
It's working as you expected?
ozzy tDeveloper/Health Informatics

Author

Commented:
yes! the following is what worked:
SELECT 

      RES.Description,
      Available_Date,
      --LOC.Scheduling_Location_ID,
      --DEPT.Description,
      --Day_Type_ID,
      --Available_Time_Block_ID,
      --Available_Time_Block_TS,
      --Start_Time ,
      --End_Time,
      --Usual_Appt_Duration,
      sum( Booking_Factor)as capacity
     -- AVAILBLOCK.Activity_Type_ID,
     -- ELIG.Appointment_Category_ID AS Elig_Appointment_Category_ID,
     --INELIG.Appointment_Category_ID AS Inelig_Appointment_Category_ID 
   
FROM PM.Available_Days AVAILDAY 
      LEFT JOIN PM.Available_Time_Blocks AVAILBLOCK  ON AVAILBLOCK.Available_Day_ID = AVAILDAY.Available_Day_ID
      LEFT JOIN PM.Scheduling_Locations LOC WITH (NOLOCK) ON LOC.Scheduling_Location_ID = AVAILDAY.Scheduling_Location_ID
      LEFT JOIN PM.Scheduling_Departments DEPT ON DEPT.Scheduling_Department_ID = AVAILDAY.Scheduling_Department_ID
      LEFT JOIN PM.Resources RES  ON RES.Resource_ID = AVAILDAY.Resource_ID
      LEFT JOIN PM.Activity_Elig_Appt_Categs ELIG WITH (NOLOCK) ON ELIG.Activity_Type_ID = AVAILBLOCK.Activity_Type_ID
      LEFT JOIN PM.Activity_Inelig_Appt_Categs INELIG WITH (NOLOCK) ON INELIG.Activity_Type_ID = AVAILBLOCK.Activity_Type_ID


WHERE AVAILDAY.Available_Date = '2017-03-08'
AND RES.Description = 'example MD, Name'


group by
RES.Description,
 Available_Date
        
   

Open in new window

Vitor MontalvãoIT Engineer
Distinguished Expert 2017

Commented:
Good.
Can you close this question?
Cheers
Vitor MontalvãoIT Engineer
Distinguished Expert 2017

Commented:
Recommendation to close this question by accepting the above comment as solution.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial