Maybe this will do what you want:
SELECT Status.ConFK, LastHours.AppHours; FROM Status ; INNER JOIN (SELECT ConFK, MAX(Date) AS MaxDate; FROM Status; GROUP BY ConFK) M ON Status.ConFK = M.ConFK AND Status.Date = M.MaxDate ; AND Type = "Approved"; LEFT JOIN (SELECT Hours.ConFK, Hours.AppHours; FROM Hours; INNER JOIN (SELECT ConFK, MAX(date) AS MaxHoursDate; FROM Hours; GROUP BY ConFK) MH ; ON Hours.ConFK = MH.ConFK AND Hours.Date = MH.MaxHoursDate ) LastHours ; ON Status.ConFK = LastHours.ConFK
Frank.
Frank Cazabon
On 21/06/2018 02:28 PM, Ken Dibble wrote:
At 02:21 PM 6/21/2018, you wrote:
What's your expected output from the data you presented?
Answer: 2 Approved Consumers, having a total of 12 Hours.
I did include that in my original post.
To make it a little easier for people to try to help, here's some code to build up the data and my attempt at what I've understood as your requirements:
[snip]
Thank you for doing that. Wow, I'm sorry I omitted that. I usually do that when I ask for help with queries.
Ken
[excessive quoting removed by server]
Maybe this will do what you want:
SELECT Status.ConFK, LastHours.AppHours; FROM Status ; INNER JOIN (SELECT ConFK, MAX(Date) AS MaxDate; FROM Status; GROUP BY ConFK) M ON Status.ConFK = M.ConFK AND Status.Date = M.MaxDate ; AND Type = "Approved"; LEFT JOIN (SELECT Hours.ConFK, Hours.AppHours; FROM Hours; INNER JOIN (SELECT ConFK, MAX(date) AS MaxHoursDate; FROM Hours; Â GROUP BY ConFK) MH ; Â ON Hours.ConFK = MH.ConFK AND Hours.Date = MH.MaxHoursDate ) LastHours ; ON Status.ConFK = LastHours.ConFK
Yes, using the data I provided (and which you assembled into tables), this gets:
CONFK APPHOURS 1 .NULL. 3 12
The query itself doesn't sum anything, but I assume I can convert NULLs to 0 and sum the APPHOURS column, and use _TALLY or RECCOUNT() to provide a total of approved Consumers.
Thank you very much!!!
Ken