Forum Discussion

aldredd's avatar
aldredd
Advocate I
9 years ago

DateAdd 'randomly' returns blank value

I'm trying to use DATEADD to calculated the due date of customer invoices, but am randomly getting blank results.

 

I have two tables...

 

LEDGER

Customer | Invoice | Invoice Date

 

TERMS

Customer | TermsDays

 

I have a relationship on Customer

 

The InvoiceDate field is a calculdated field using the DATE() function, and is recognized as a date, so don't think I have any date-type issues.

 

This is my (simplified version) of my calculation

 

tmpDateAdd = DATEADD(LEDGER[InvoiceDate],RELATED(Terms[TermsDays]),DAY)

However, a good 10% of my records dont' return a result. No notable pattern. If I bring 'TermsDays' field from the 'Terms' table into my dataset, it returns a value correctly, it just doesn't seem to want to add it

 

 

I'll have a go using simply InvoiceDate + TermsDays, but is there a reason why it would selectively miss out values like this?

2 Replies

  • Sean's avatar
    Sean
    Community Champion

    Yes DATEADD requires contiguous date selection

    So you'll need a Calendar table and then reference the 'CalendarTable'[Date] Column

     

    This should work as a COLUMN in your LEDGER table

    tmpDateAdd  = LEDGER[InvoiceDate] + RELATED(TERMS[TermsDays])

     

    • aldredd's avatar
      aldredd
      Advocate I

      Thanks Sean, that's what I went with in the end (date+days), but was curious why it wasn't work.

       

      Hadn't occured to me that not using a separate calendar table, in this example, would cause me an issue - but lesson learnt!

      (I spend more time in SQL Server than I do PBI, and whilst using a calendar lookup table is just as important in that environment, in this particular scenario, it wouldn't have been an issue)

       

      Thanks for pointing me in the right direction though, much appreciated.