Skip to main content

Notifications

Announcements

No record found.

Small and medium business | Business Central, N...
Answered

Query but Method = Max can't be applied to Date values

Posted on by 627
So I'm building a customer query. Including their contact details, along with some sales summary fields, such as total quantity and total amount. I would like to also present the user with their last sale date. But applying the Max method to a Date field isn't allowed? If AL is supposed to emulate basic T-SQL then the MAX method is certainly available using that route. Here's my code below. Any suggestions as to how I can add the most recent Sales Line Posting Date to this result set?
 
/// <summary>
/// Query DCH Customer Sales Totals (ID 50003).
/// </summary>
query 50003 /DCH Customer Sales Totals/
{
Caption = 'DCH Customer Sales Totals';
QueryType = Normal;
//OrderBy = Descending(Posting_Date);
 
elements
{
dataitem(Customer; Customer)
{
column(No; /No./)
{
}
column(Name; Name)
{
}
column(Address; Address)
{
}
column(Address2; /Address 2/)
{
}
column(City; City)
{
}
column(County; County)
{
}
column(PostCode; /Post Code/)
{
}
column(PhoneNo; /Phone No./)
{
}
column(MobilePhoneNo; /Mobile Phone No./)
{
}
column(EMail; /E-Mail/)
{
}
column(SalespersonCode; /Salesperson Code/)
{
}
column(MailOK; /Mail OK/)
{
}
column(EmailOK; /Email OK/)
{
}
column(Location_Code; /Location Code/)
{
 
}
dataitem(Sales_Line; /Sales Line/)
{
DataItemLink = /Sell-To Customer No./ = Customer./No./;
SqlJoinType = InnerJoin;
 
column(Quantity; Quantity)
{
Caption = 'Sum Quantity';
Method = Sum;
}
column(Amount; Amount)
{
Caption = 'Sum Amount';
Method = Sum;
}
// Need to present the user with the last sale date. Method = Max doesn't work for Date data types. :(
/*column(Posting_Date; /Posting Date/)
{
Caption = 'Last Sale';
}*/
}
}
}
 
trigger OnBeforeOpen()
begin
 
end;
}
Categories:
  • Suggested answer
    Greg Kujawa Profile Picture
    Greg Kujawa 627 on at
    Query but Method = Max can't be applied to Date values
    UPDATE: I employed something that is based on your very helpful article about using a query to populate a temporary table, and then use that as a basis for a page.


    Using this logic I was able to determine the Last Sale Date value through a local procedure on the new page. And include that value in the result set. All good now!
  • Greg Kujawa Profile Picture
    Greg Kujawa 627 on at
    Query but Method = Max can't be applied to Date values
    Thanks for your reply! I was looking at utilizing similar logic, but a couple of other columns in the Sales Line I want to look at to include sum totals. Such as Quantity and Amount. I'll try to use what you suggested and see how it goes!
  • Suggested answer
    YUN ZHU Profile Picture
    YUN ZHU 73,647 Super User 2024 Season 2 on at
    Query but Method = Max can't be applied to Date values
    Hi, I think you could think of it differently, for example,
     
    Hope this helps.
    Thanks.
    ZHU
  • Greg Kujawa Profile Picture
    Greg Kujawa 627 on at
    Query but Method = Max can't be applied to Date values
    I tried adding this as a ColumnFilter but that wasn't the ticket.
     
    ColumnFilter = Posting_Date = filter(=max("Posting Date"));

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

December Spotlight Star - Muhammad Affan

Congratulations to a top community star!

Top 10 leaders for November!

Congratulations to our November super stars!

Tips for Writing Effective Suggested Answers

Best practices for providing successful forum answers ✍️

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 291,269 Super User 2024 Season 2

#2
Martin Dráb Profile Picture

Martin Dráb 230,198 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,156

Leaderboard

Featured topics

Product updates

Dynamics 365 release plans