The user will input the JobId, PositionId, ActivityId. I want to return all the TaskName ,CompetencyId, CompetencyName Where the following: The highest priority within the same keyword Basically group by keyword then pick the highest priority I have done this:
SELECT Max(Competency.Priority), Competency. Keyword FROM Competency INNER JOIN ((ActivityTask RIGHT JOIN (positionTask RIGHT JOIN (JobTask RIGHT JOIN task ON JobTask.TaskID = task.TaskID) ON positionTask.TaskID = task.TaskID) ON ActivityTask.TaskID = task.TaskID) INNER JOIN TaskCompetency ON task.TaskID = TaskCompetency.TaskID) ON Competency.CompetencyID = TaskCompetency.CompetencyID WHERE (((JobTask.JobID)=[job])) OR (((positionTask.PositionID)=[position])) OR (((ActivityTask.GroupID)=[Activity])) GROUP BY Competency.CompetencyKeyword;
It works fine, it returns the all the keyword, and its highest priority. But I can’t return the Competency.CompetencyId, Competency. CompetencyName with the aggregate function Max
Hello! .... I think I posted this in the wrong section of the forum, so here it is again and hope someone's kind enough to help. Basically, I've been asked to show (in a form as well as a report) results on a Monthly, Quarterly and Year-to-Date basis. The table structure I currently have is as follows (additional fields and/or tables can be added if it would help get the results desired):
Part of the trick with this is to be able to show these aggregate values (quarterly, YTD, and on a 13-month rolling basis) as users enter new data for whatever the current month is. Any assistance in helping me get this accomplished would be enourmeously appreciated.
Manifest Weight StopNo State ------- ------- ------- ------ 71545 1000 10 VA 71545 1000 20 TN 71545 500 30 AL
Some Manifests are repeating There are multiple stops within each manifest (eg.: 10, 20, 30) and each stops has itsown weight info and State. What I am trying to figure out is the number of manifests, total weight within manifest, and the last stop and state of the manifest
Query: SELECT ManifestNo, Count(ManifestNo), Sum(Weight), Last(Stop No), Last(State) FROM RBP WHERE ShipmentType="ROAD" GROUP BY ManifestNo;
My Problem: Everything works fine, but the state of the last stop is not displaying properly..
My result is - 71545 3 2500 30 TN Correct output should be - 71545 3 2500 30 AL
I tried to remove the "last" from State but its gives me the aggregate function error. Any suggession ? Thanks in advance.. binjos
I have an aggregate query that creates a report of "A" by "B". Each "A" can have many "B"s under it. The report works fine. I need to count and display on the report the number of "B"s for each "A". I can't seem to manipulate the "count" property of the query to generate the correct number. Little help??? Thanks....
I am working on a Sales Analysis db, which pulls from:
tSales - Sales Figures (40k records) tBuildUnit - Bom Build Units (8k records - one per product) tBom - Bills of Material - All Components (71k records) tUom - Units of Measure for Products (80k records - 10 per product)
It is quite basic in theory, it looks at a product sold, goes to tBom to get the cost of the raw materials.
I have a query that sums the components by their group, distinguishing between material and labour cost by the component group (cGrp) which is 'WORK' for labour and <>"WORK for materials. I can then sum the cost of the materials for a given product.
Anyway to cut to the issue in hand.
I export from our system (LM4 on btrieve on novell 3.2) into CSVs then manipulate those
we have 220 customers in this recordset. so i would like just 220 rows.
My data that i export shows every transaction (so i have 40k records)
So i used a aggregate query, grouping by customer account and summing the value, material, and labour fields, however this gives me each customer three times, one per year e.g.:
I have a list of product sales for various regions.How do I write a query to only retrieve the record with the highest value in a region, but include the region and product code in the results?For example, If I run an aggregate query using the max function I still get the record for region:
SELECT Stats.ProdCode, Max(Stats.Sales) AS MaxOfSales, Stats.Region FROM Stats GROUP BY Stats.ProdCode, Stats.Region;
I realise that this returns the record for each region because the 'Group By' is applied to that field, but if I remove it then that field is not going to be available in the results(???)
I am completely at a lose here. I have a LARGE sql query that was written before my time and how have the task of customizing it a little. It will run perfectly in Advisor Office (the program it was written for which uses access as the back end db). But if i try and create a query in access directly i get the following error:
You tried to execute a query that does not include the specified expression 'IIF (CommnPremiums.Type IN (1, 2), IIF (CommnEntries.Type IN (1, 4), 'Non Indemnity', IIF (CommnEntries.Type IN (2, 6), 'Indemnity', IIF (CommnEntries.Type = 3, 'Renewal', IIF (CommnEntries.Type = 5, 'Trail', ' ')))), IIF (CommnPremiums.Type = 3, 'Initial', IIF (CommnPremiums.Type =' as part of an aggregate function
the full IIF statement that is causing it to fail is:
The WHOLE SQL query spans over 4 pages of A4 so i will only put it at the bottom (hoping its not needed to see the error. There are a few unions so i will put the first one in here to show what it is doing.
SELECT IIF (Policies.Owner = 0, clients.partnersurname + ", " + clients.partnerforenames, clients.surname + ", " + clients.forenames) AS Name, Policies.PolicyNumber, Schemes.SchemeName, Managers.FullName AS Manager, CommnPremiums.CommnPremiumDate, IIF (CommnPremiums.Type = 1, 'Initial Premium', IIF (CommnPremiums.Type = 2, 'Increment', IIF (CommnPremiums.Type = 3, 'Single Premium', IIF (CommnPremiums.Type = 4, 'Annual Renewal', IIF (CommnPremiums.Type = 5, 'Value Based', IIF (CommnPremiums.Type = 6, 'Protected Rights', IIF (CommnPremiums.Type = 7, 'Transfer', ' '))))))) + IIF (CommnPremiums.Type IN (1, 2), IIF (CommnEntries.Type = 1, ' - Non Indemnity', IIF (CommnEntries.Type = 2, ' - Indemnity', IIF (CommnEntries.Type = 3, ' - Renewal', IIF (CommnEntries.Type = 4, ' - Level', IIF (CommnEntries.Type = 5, ' - Fund Based Trail', IIF (CommnEntries.Type = 6, ' - Level Indemnity', ' ')))))), ' ') AS PremiumType, CommnEntries.DueFrom, CommnEntries.DueTo, SUM (Matches.Amount) AS TotalMatched, CommissionCredits.CreditPC AS Credit, Consultants.FullName AS Consultant, ROUND ((CommissionCredits.CreditPC * SUM (Matches.Amount) / 100), 2) AS CommissionMatched, Cheques.Amount AS ChequeAmount, Cheques.ChequeDate, IIF (CommnPremiums.Type IN (1, 2), IIF (CommnEntries.Type IN (1, 4), 'Non Indemnity', IIF (CommnEntries.Type IN (2, 6), 'Indemnity', IIF (CommnEntries.Type = 3, 'Renewal', IIF (CommnEntries.Type = 5, 'Trail', ' ')))), IIF (CommnPremiums.Type = 3, 'Initial', IIF (CommnPremiums.Type = 4, 'Renewal', IIF (CommnPremiums.Type = 5, 'Trail', IIF (CommnPremiums.Type = 6, 'Protected Rights', IIF (CommnPremiums.Type = 7, 'Transfer', ' ')))))) AS CommissionType FROM ((((((((Clients LEFT JOIN Policies ON Clients.ClientRef = Policies.ClientRef) LEFT JOIN Schemes ON Policies.SchemeRef = Schemes.SchemeRef) LEFT JOIN CommnPremiums ON Policies.PolicyRef = CommnPremiums.PolicyRef) LEFT JOIN CommnEntries ON CommnPremiums.CommnPremRef = CommnEntries.CommnPremRef) LEFT JOIN Matches ON CommnEntries.CommnEntryRef = Matches.FKeyRef) LEFT JOIN Cheques ON Matches.ChequeRef = Cheques.ChequeRef) LEFT JOIN Managers ON Cheques.FKeyRef = Managers.ManagerRef) LEFT JOIN CommissionCredits ON CommnEntries.CommnEntryRef = CommissionCredits.FKeyRef) LEFT JOIN Consultants ON CommissionCredits.ConsultantRef = Consultants.ConsultantRef WHERE Matches.FKeyType = 1 AND Cheques.FKeyType = 1 AND Cheques.ChequeDate BETWEEN #01-Jan-2004# AND #31-Dec-2004# AND CommissionCredits.FKeyType = 1 AND CommissionCredits.Type = 1 GROUP BY IIF (Policies.Owner = 0, clients.partnersurname + ", " + clients.partnerforenames, clients.surname + ", " + clients.forenames), Policies.PolicyNumber, Schemes.SchemeName, Managers.FullName, CommnPremiums.CommnPremiumDate, IIF (CommnPremiums.Type = 1, 'Initial Premium', IIF (CommnPremiums.Type = 2, 'Increment', IIF (CommnPremiums.Type = 3, 'Single Premium', IIF (CommnPremiums.Type = 4, 'Annual Renewal', IIF (CommnPremiums.Type = 5, 'Value Based', IIF (CommnPremiums.Type = 6, 'Protected Rights', IIF (CommnPremiums.Type = 7, 'Transfer', ' '))))))) + IIF (CommnPremiums.Type IN (1, 2), IIF (CommnEntries.Type = 1, ' - Non Indemnity', IIF (CommnEntries.Type = 2, ' - Indemnity', IIF (CommnEntries.Type = 3, ' - Renewal', IIF (CommnEntries.Type = 4, ' - Level', IIF (CommnEntries.Type = 5, ' - Fund Based Trail', IIF (CommnEntries.Type = 6, ' - Level Indemnity', ' ')))))), ' '), CommnEntries.DueFrom, CommnEntries.DueTo, Cheques.Amount, Cheques.ChequeDate, IIF (CommnPremiums.Type IN (1, 2), IIF (CommnEntries.Type IN (1, 4), 'Non Indemnity', IIF (CommnEntries.Type IN (2, 6), 'Indemnity', IIF (CommnEntries.Type = 3, 'Renewal', IIF (CommnEntries.Type = 5, 'Trail', ' ')))), IIF (CommnPremiums.Type = 3, 'Initial', IIF (CommnPremiums.Type = 4, 'Renewal', IIF (CommnPremiums.Type = 5, 'Trail', IIF (CommnPremiums.Type = 6, 'Protected Rights', IIF (CommnPremiums.Type = 7, ‘Transfer’, ' ')))))), Consultants.FullName, CommissionCredits.CreditPC
If I changed the IIF statement to:
'X' as commisiontype
it all works great but i need this information and its driving me mad. I can not see why it doesnt work within Access.
Any and All help would be great.
thx
Twiggy
I have attached the FULL sql query if you want to look at it all.. it hurts my head to read it all ;)
Alright, I've got all the pieces to this puzzle, I just can't fit them together properly. I have two tables, tblTickets and tblTicketNotes. They are in a one-to-many relationship, there can be multiple Notes attached to a single ticket. I am trying to set up a query that will pull the first (earliest by date) note for each individual Ticket. Here are the fields from each table that would be of concern here:
tbTickets TicketID - Autonumber - Primary Key Issue - Text - I will be using this later as a criteria to limit with, but not neccessary
tblTicketNotes NoteID - Autonumber - Primary Key TicketID - Long Integer - This is the foreign key of the relationship DateStamp - Date/Time - This is the Note Date, I only want the first (earliest date) one Content - Memo -This is the note information I want
So all I want is the Content of the first/earliest Note for each individual Ticket. I know this should be fairly easy, but I am at a loss.
I have 2 tables, trying to update one table filed by using max(onefiled) from other table.
my qyery is as follows:
my tables are tblSubFlowForecast and tblPickCalendar
I have to update one field in tblSubFlowForecast by taking max(onefiled) from tblPickCalendar.
UPDATE tblSubFlowForecast INNER JOIN tblPickCalendar ON tblSubFlowForecast.Delivery=tblPickCalendar.Delive ry SET tblSubFlowForecast.[Latest Replen Date] = ( SELECT max(Pick) FROM tblPickCalendar WHERE Type="Replen");
I am getting error saying that "Operation must be an updateable query" :(
I have also tried in other way:
UPDATE tblSubFlowForecast SET [Latest Replen Date] = (SELECT max(Pick) FROM tblPickCalendar WHERE tblSubFlowForecast.Delivery=tblPickCalendar.Delive ry AND tblPickCalendar.Type="Replen" ) FROM tblSubFlowForecast,tblPickCalendar
This is giving me syntax error (missing operator) :(
Can any body tell me why it is giving error? Thanks in advance
Here's a sticky one? (maybe...) I have a number of aggregate totals from several queries all linked to the Input Query and all Nz'd as 0's
From the image enclosed the totaling text box (top right left) is calculating the value in the properties box. The value should be 3.52 + 5 - 8 = 0.52 the value showing is -4.475 (which is 3.52 - 8) so I see it's ignoring the 5 value but I can't see why.
The ACDays and ALDays values are both generated by the same module, but with different Leave types. and as I mentioned previously all Nz 0'd
I working with Access 2010 and a form with criteria controls, a requery button and a subform that displays the query. I wanted to add a text box that would display some aggregate information about the query results. Like how many results were returned or what the average is in a column of numbers stuff like that.
If at all possible I was hoping to have the text box display aggregate information of the whole query but when a specific entry in the table is clicked I was hoping to have it show aggregate detailed information about that entry opposed to the whole table. So I am not sure if that changes the solution but I wanted to put it out there.In my searches it looks like Dlookup is the way to go but I have seen a lot of people use Dlookup in very different ways so I might be wrong.
Hi, Can anyone please help me out with the IIF concept of MS-ACCESS. I have a table with the following data: Name Age Place Dept AAA 13 Mumbai Accounting BBB 12 Pune Banking CCC 15 Delhi Finance DDD 30 Mumbai Accounting EEE 25 Delhi Finance
Now i need a query output like Expected output: --------------- Dept Total-count Mumbai Pune Delhi
Accounting 2 2 0 0 Banking 1 0 1 0 Finance 2 1 0 1 Now i m using the query: ******************* SELECT [Dept], sum(test-table.dept) AS ['total count'], Sum(IIf([place]="Mumbai",1,0)) AS Mumbai, Sum(IIf([place]="Pune",1,0)) AS Pune, Sum(IIf([place]="Delhi",1,0)) AS Delhi FROM [Test-Table] GROUP BY [Dept]; ******************* and the output which i am getting is: Dept Total-count Mumbai Pune Delhi
Accounting 2 0 0 Banking 0 1 0 Finance 1 0 1 can anyone let me know as to what change should be there in the query so that i get the correct values in Total-count field with the sum of horizontal counts?
I'm looking to return different average values for each GICS Sector using this query:
Code: SELECT [GICS Sector], DAvg("GM","tbl0"," [GICS Sector] = [GICS Sector] AND GM Is Not Null") AS GmMedianByGicsSectorFROM tbl0 WHERE [GICS Sector] = [GICS Sector] GROUP BY [GICS Sector];
Health Care 0.469556278179105 Industrials 0.469556278179105 Information Technology 0.469556278179105 Materials 0.469556278179105 Telecommunication Services 0.469556278179105 Utilities 0.469556278179105
I was wondering if anyone can help me: I have for example Pupils that are being entered into a table (called log). A query then counts the number of entries for each pupil I then want it ONLY to show the pupils that have been entered in 10 times on todays date (using DATE()). I know this doesnt work but this is what I want to do:
SELECT log.pupilNo, log.Forename, log.Surname, Count(log.pupilNo) AS Demerits FROM log, Tally WHERE (log.Date)=Date() AND COUNT(log.pupilNo)>9 GROUP BY log.pupilNo, log.Forename, log.Surname, log.pupilNo;
Apparenty you cannot have an Aggregate function in a where clause. Does anyone know a solution, any help would be appreciated Cheers Bikeboardsurf
I have a table namely, leave_details wherein there is a column called DAYS and TDAYS, DAYS columns represent number of leaves an employee has taken in a single leave application and TDAYS represents Total number of leaves an employee has availled till date.
To calculate the TDAYS i need to SUM the DAYS column for every employee.
When an employee again log in the application he should be aware of the total number of leaves which he has already availed.
Please help me for the same as I am unable to do so.
Kindly revert back for any queries or any further information.
I am working on a marketing database. I have two tables that are in use called tblListInfo and tblResults.
In tblListInfo the fields I am using are DropDate, ListName and Marketcode. In tblResults the fields I am using are JoinDate and Marketcode.
I am attempting to write a query that the end result will display the number of records within the 1st week of the promotions drop date. For every combination where the ListName value AND the DropDate value are unique, I want to count the number of records in tblResults that have JoinDate BETWEEN DropDate AND DropDate + 6.
I tried writing the code for this in pieces starting with:
SELECT DISTINCT tblListInfo.[ListName], tblListInfo.[DropDate] FROM tblResults INNER JOIN tblListInfo ON tblResults.[Marketcode] = tblListInfo.[Marketcode]
This gave me my first ideal part of the output I was seeking. I listing of all the possible marketing lists used with duplicate names occuring only when there were different drop dates. for example:
Listname Drop Date List - 1 1/1/08 List - 1 1/15/08 List - 2 1/1/08 List - 2 2/5/08
From there I wanted to modify the process to include a third field that included the # of records in tblResults that have the JoinDate field BETWEEN tblListInfo.[Drop Date] AND (tblListInfo.[Drop Date]+6). The ideal output would be like this:
Listname Drop Date Week 1 List - 1 1/1/08 15 List - 1 1/15/08 8 List - 2 1/1/08 32 List - 2 2/5/08 12
My attempt at getting to this result is below:
SELECT DISTINCT tblListInfo.[drop date], tblListInfo.[ListName], count(tblResults.[join date]) AS [Week 1] FROM tblResults INNER JOIN tblListInfo ON tblResults.[MarketCode] = tblListInfo.[MarketCode] WHERE tblResults.[Join Date] BETWEEN tblListInfo.[drop date] AND (tblListInfo.[drop date]+6)
I receive an error at this point saying: "You tried to execute a query that does not include the specified expression 'ListName' as part of an aggregate function."
Can anyone offer suggestions/corrections to my approach and logic?
I have a subform (in continuous record view) which displays products on an order items form. Each record has a DMin control to find the lowest price for its product (each product can have many suppliers and therefore many prices). I need to put a control in the subform footer containing the sum of the minimum prices.
Access doesn't seem to want to sum calculated controls, so could someone please point me in the direction of how to go about doing this or achieving the same result through a different method?
Is it possible to add a calcualted field to a query that already uses 'sum'? I want to take the value returned by sum and add the value of another field to it.
Is there any way to lookup items using DLookup or other functions that will return an array of values not just the first value found. Example: I have three employees in a complaint query. I am using Dlookup to identify them on my employee form. When I get to the same employee/employee id on my employees form, I have a label that flashes red to flag me that this employee appears on that complaint query. The problem that I am having is that it only flashes for the first employee found in the query, and the label only flashes for that one person. I would like the label to flash for the other two employees because the function should see that they are in the query results as well. Help please?!!!
I have quite a few aggregate functions within a report I produced based on 2 queries. I need to do a mail merge with this information, but it is not all in one single query, because I cannot get an expression using totals in a field. How do you get these aggregate functions to be a part of the query, so it can eventually be part of the mail merge? It is unfortunate that you can't just use a report to mail merge, because all my equations are in the report.
I know SQL well enough, but I cant seem to get my query to work. Basically, I am trying to display a series of posts, with the number of comments on the side.
I have two tables, Entries and Comments, which look like this: Entries --------- IDTitleContent (memo field) 1CatsSomething about cats here 2DogsSomething else about dogs here 3RodentsMy pet rat runs in a wheel etc.
Comments -------- IDPostIDComments 11My cat's name is mittens 21I taught my cat how to throw a curve ball 33Rats like squeak toys 42Nobody likes dogs 53Bunnies make good pets 61Cats are witches in disguise Comments.PostID corresponds to Entries.ID on a many-to-one relationship.
I want to run a query that will join the number of comments (which is a Count of each row in the Comments table where Comments.PostID = Entries.ID) to the existing table, so that it will look like this:
Entries (with #ofcomments joined) ---------- IDTitleContent (memo field)#ofcomments 1CatsSomething about cats here3 2DogsSomething else about dogs here1 3RodentsMy pet rat runs in a wheel2 etc.
Usually, this would be a really simple SQL statement, but as I am using a Memo field, I am getting a "cannot use Memo field in aggregate function" error.
I'm not sure what to do, any help would be appreciated :)
SELECT tblTempProject.project_number, tblTempProject.Project_name, tblTempProject.subsidiary, tblTempProject.division, tblTempProject.unit_number, tblTempProject.client_name, tblTempProject.resourcing_contact, tblTempProject.project_cat_type_code, tblTempJob.headline, tblTempJob.contact_name, tblTempJob.contact_staff_number, tblTempJob.contact_unit_number, tblTempJob.resourcing_team_email, tblTempJob.creation_date, tblTempJob.nominatio_date, tblTempJob.decision_date, tblTempJob.sar_status, tblTempJob.publication_level, tblTempJob.sar_number, tblTempJob.last_modified_timestamp, tblTempJob.last_updated_by, tblTempJob.requirements, tblTempJob.positions_filled, tblTempJob.closure_description, tblTempJob.other_inf, tblTempJob.description, tblTempJob.qual_exp, tblTempJob.Tag1, tblTempJob.Tag2, tblTempJob.Tag3, tblTempJob.Tag4 FROM tblTempJob, tblTempProject WHERE tblTempJob.project_number = tblTempProject.project_number AND tblTempJob.project_category_type_code = tblTempProject.project_cat_type_code AND tblTempJob.project_company_code = tblTempProject.subsidiary AND tblTempProject.subsidiary='NL' AND (tblTempJob.sar_status='FIR' Or tblTempJob.sar_status='HOL' Or tblTempJob.sar_status='PRO25' Or tblTempJob.sar_status='PRO50' Or tblTempJob.sar_status='PRO75') AND tblTempJob.project_company_code=[tblTempProject].[subsidiary] AND tblTempJob.project_category_type_code=[tblTempProject].[project_cat_type_code] AND tblTempJob.project_number=[tblTempProject].[project_number] AND tblTempJob.external_resourcing=-1 GROUP BY tblTempProject.project_number ORDER BY tblTempJob.sar_status;
When execute this query then I get the following error: "You tried to execute a query that does not include the specified expression <name> as part of an aggregate function. (Error 3122)"
When delete the line: GROUP BY tblTempProject.project_number, then it works. I don't know what I must do to get this right so that I have every project one time in the result.