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

(1) ShareShare
ReportReport
Posted on by 289
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;
}
  • Suggested answer
    Greg Kujawa Profile Picture
    Greg Kujawa 289 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 289 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 75,942 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 289 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

Congratulations 2024 Spotlight Honorees

Kudos to all of our 2024 community stars! 🎉

Meet the Top 10 leaders for December

Congratulations to our December super stars! 🥳

Start Your Super User Journey

Join the ranks of our community heros! 🦹

Leaderboard

#1
André Arnaud de Calavon Profile Picture

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

#2
Martin Dráb Profile Picture

Martin Dráb 230,476 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,156

Leaderboard

Featured topics

Product updates

Dynamics 365 release plans