Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
Author |
Topic |
jebrown55
Starting Member
3 Posts |
Posted - 2009-02-11 : 11:15:27
|
I have a table with an inner join to another table. I need to get the sum's from all of the fields that I have collected in the main table (Time_Allocation) including the sum in the related table (PR_time). I am getting the correct information from the joined table (PR_time). However, on the main table (Time_Allocation) I am getting a multiple of however many is in the sub-table. I'm stumped on this please help.My query:SELECT Sum(Time_Allocation.ng_pqprocessing) AS ng_pqprocessing, Sum(Time_Allocation.ng_mqprocessing) AS ng_mqprocessing, Sum(Time_Allocation.ng_sales_asst) AS ng_sales_asst, Sum(Time_Allocation.ng_field_service_asst) AS ng_field_service_asst, Sum(Time_Allocation.ng_mfg_asst) AS ng_mfg_asst, Sum(Time_Allocation.ng_training) AS ng_training, Sum(Time_Allocation.ng_sys_it) AS ng_sys_it, Sum(Time_Allocation.ng_manuals) AS ng_manuals, Sum(Time_Allocation.ng_meetings) AS ng_meetings, Sum(Time_Allocation.rj_pqprocessing) AS rj_pqprocessing, Sum(Time_Allocation.rj_mqprocessing) AS rj_mqprocessing, Sum(Time_Allocation.rj_sales_asst) AS rj_sales_asst, Sum(Time_Allocation.rj_field_service_asst) AS rj_field_service_asst, Sum(Time_Allocation.rj_mfg_asst) AS rj_mfg_asst, Sum(Time_Allocation.rj_training) AS rj_training, Sum(Time_Allocation.rj_sys_it) AS rj_sys_it, Sum(Time_Allocation.rj_manuals) AS rj_manuals, Sum(Time_Allocation.rj_meetings) AS rj_meetings, Sum(Time_Allocation.conv_pqprocessing) AS conv_pqprocessing, Sum(Time_Allocation.conv_mqprocessing) AS conv_mqprocessing, Sum(Time_Allocation.conv_sales_asst) AS conv_sales_asst, Sum(Time_Allocation.conv_field_service_asst) AS conv_field_service_asst, Sum(Time_Allocation.conv_mfg_asst) AS conv_mfg_asst, Sum(Time_Allocation.conv_training) AS conv_training, Sum(Time_Allocation.conv_sys_it) AS conv_sys_it, Sum(Time_Allocation.conv_manuals) AS conv_manuals, Sum(Time_Allocation.conv_meetings) AS conv_meetings, Sum(Time_Allocation.conv_componentevalualtion) AS conv_componentevalualtion, Sum(Time_Allocation.conv_approvaldrawings) AS conv_approvaldrawings, Sum(Time_Allocation.conv_salesdrawings) AS conv_salesdrawings, Sum(Time_Allocation.conv_exportasst) AS conv_exportasst, Sum(Time_Allocation.conv_admin) AS conv_admin, Sum(Time_Allocation.conv_mfgmeetings) AS conv_mfgmeetings, Sum(Time_Allocation.conv_salesmeetings) AS conv_salesmeetings, Sum(Time_Allocation.conv_projmeetings) AS conv_projmeetings, Sum(Time_Allocation.ng_componentevalualtion) AS ng_componentevalualtion, Sum(Time_Allocation.ng_approvaldrawings) AS ng_approvaldrawings, Sum(Time_Allocation.ng_salesdrawings) AS ng_salesdrawings, Sum(Time_Allocation.ng_exportasst) AS ng_exportasst, Sum(Time_Allocation.ng_admin) AS ng_admin, Sum(Time_Allocation.ng_mfgmeetings) AS ng_mfgmeetings, Sum(Time_Allocation.ng_salesmeetings) AS ng_salesmeetings, Sum(Time_Allocation.ng_projmeetings) AS ng_projmeetings, Sum(Time_Allocation.rj_componentevalualtion) AS rj_componentevalualtion, Sum(Time_Allocation.rj_approvaldrawings) AS rj_approvaldrawings, Sum(Time_Allocation.rj_salesdrawings) AS rj_salesdrawings, Sum(Time_Allocation.rj_exportasst) AS rj_exportasst, Sum(Time_Allocation.rj_admin) AS rj_admin, Sum(Time_Allocation.rj_mfgmeetings) AS rj_mfgmeetings, Sum(Time_Allocation.rj_salesmeetings) AS rj_salesmeetings, Sum(Time_Allocation.rj_projmeetings) AS rj_projmeetings, Sum(PR_Time.PR_time) AS PR_time, max(month(Time_Allocation.TA_date)) AS TA_month, max(year(Time_Allocation.TA_date)) AS TA_year, max(Time_Allocation.EmpID) AS EmpIDFROM Time_Allocation INNER JOIN PR_Time ON Time_Allocation.TA_autonum=PR_Time.TA_autonumWHERE ((Time_Allocation.EmpID=[Enter the Employee that you want to Query ex: 'jworker'])and((Month(Time_Allocation.TA_date))=[Enter the month that you want to Query 'm']) And ((Year(Time_Allocation.TA_date))=[Enter the year that you want to Query 'yyyy']));If you need more info please let me know. Thx... |
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2009-02-11 : 11:23:24
|
group by main table field and apply aggregates fisrt. then join with this derived table from first table |
 |
|
jebrown55
Starting Member
3 Posts |
Posted - 2009-02-11 : 11:37:56
|
visakh16,I'm having a problem with the syntax of that. Would I use a GROUP BY then use a subquery for the second table?? Can you include a bit of an example. Like I said; I'm stumped... |
 |
|
jebrown55
Starting Member
3 Posts |
Posted - 2009-02-11 : 16:14:25
|
I had to put a sub-query in the SELECT statement with a join and then took the original join out of the main query. I’m assuming the Access DB already recognizes the new WHERE clause from the old one, so it only asks for the information once and looks it up twice. Here is the syntax...SELECT Sum(Time_Allocation.ng_pqprocessing) AS ng_pqprocessing, Sum(Time_Allocation.ng_mqprocessing) AS ng_mqprocessing, Sum(Time_Allocation.ng_sales_asst) AS ng_sales_asst, Sum(Time_Allocation.ng_field_service_asst) AS ng_field_service_asst, Sum(Time_Allocation.ng_mfg_asst) AS ng_mfg_asst, Sum(Time_Allocation.ng_training) AS ng_training, Sum(Time_Allocation.ng_sys_it) AS ng_sys_it, Sum(Time_Allocation.ng_manuals) AS ng_manuals, Sum(Time_Allocation.ng_meetings) AS ng_meetings, Sum(Time_Allocation.rj_pqprocessing) AS rj_pqprocessing, Sum(Time_Allocation.rj_mqprocessing) AS rj_mqprocessing, Sum(Time_Allocation.rj_sales_asst) AS rj_sales_asst, Sum(Time_Allocation.rj_field_service_asst) AS rj_field_service_asst, Sum(Time_Allocation.rj_mfg_asst) AS rj_mfg_asst, Sum(Time_Allocation.rj_training) AS rj_training, Sum(Time_Allocation.rj_sys_it) AS rj_sys_it, Sum(Time_Allocation.rj_manuals) AS rj_manuals, Sum(Time_Allocation.rj_meetings) AS rj_meetings, Sum(Time_Allocation.conv_pqprocessing) AS conv_pqprocessing, Sum(Time_Allocation.conv_mqprocessing) AS conv_mqprocessing, Sum(Time_Allocation.conv_sales_asst) AS conv_sales_asst, Sum(Time_Allocation.conv_field_service_asst) AS conv_field_service_asst, Sum(Time_Allocation.conv_mfg_asst) AS conv_mfg_asst, Sum(Time_Allocation.conv_training) AS conv_training, Sum(Time_Allocation.conv_sys_it) AS conv_sys_it, Sum(Time_Allocation.conv_manuals) AS conv_manuals, Sum(Time_Allocation.conv_meetings) AS conv_meetings, Sum(Time_Allocation.conv_componentevalualtion) AS conv_componentevalualtion, Sum(Time_Allocation.conv_approvaldrawings) AS conv_approvaldrawings, Sum(Time_Allocation.conv_salesdrawings) AS conv_salesdrawings, Sum(Time_Allocation.conv_exportasst) AS conv_exportasst, Sum(Time_Allocation.conv_admin) AS conv_admin, Sum(Time_Allocation.conv_mfgmeetings) AS conv_mfgmeetings, Sum(Time_Allocation.conv_salesmeetings) AS conv_salesmeetings, Sum(Time_Allocation.conv_projmeetings) AS conv_projmeetings, Sum(Time_Allocation.ng_componentevalualtion) AS ng_componentevalualtion, Sum(Time_Allocation.ng_approvaldrawings) AS ng_approvaldrawings, Sum(Time_Allocation.ng_salesdrawings) AS ng_salesdrawings, Sum(Time_Allocation.ng_exportasst) AS ng_exportasst, Sum(Time_Allocation.ng_admin) AS ng_admin, Sum(Time_Allocation.ng_mfgmeetings) AS ng_mfgmeetings, Sum(Time_Allocation.ng_salesmeetings) AS ng_salesmeetings, Sum(Time_Allocation.ng_projmeetings) AS ng_projmeetings, Sum(Time_Allocation.rj_componentevalualtion) AS rj_componentevalualtion, Sum(Time_Allocation.rj_approvaldrawings) AS rj_approvaldrawings, Sum(Time_Allocation.rj_salesdrawings) AS rj_salesdrawings, Sum(Time_Allocation.rj_exportasst) AS rj_exportasst, Sum(Time_Allocation.rj_admin) AS rj_admin, Sum(Time_Allocation.rj_mfgmeetings) AS rj_mfgmeetings, Sum(Time_Allocation.rj_salesmeetings) AS rj_salesmeetings, Sum(Time_Allocation.rj_projmeetings) AS rj_projmeetings, (Select Sum(PR_Time.PR_time) FROM Time_Allocation INNER JOIN PR_Time ON Time_Allocation.TA_autonum=PR_Time.TA_autonum WHERE ((Time_Allocation.EmpID=[Enter the Employee that you want to Query ex: 'jworker'])and((Month(Time_Allocation.TA_date))=[Enter the month that you want to Query 'm']) And ((Year(Time_Allocation.TA_date))=[Enter the year that you want to Query 'yyyy'])) ) AS PR_time, max(month(Time_Allocation.TA_date)) AS TA_month, max(year(Time_Allocation.TA_date)) AS TA_year, max(Time_Allocation.EmpID) AS EmpIDFROM Time_AllocationWHERE ((Time_Allocation.EmpID=[Enter the Employee that you want to Query ex: 'jworker'])and((Month(Time_Allocation.TA_date))=[Enter the month that you want to Query 'm']) And ((Year(Time_Allocation.TA_date))=[Enter the year that you want to Query 'yyyy'])); |
 |
|
|
|
|
|
|