Update Table Question

Hi,
I'm using SOQL and am doing an update to a table.
I'd like to check the date field before updating and only update the date field if the current date is older than the date I'm trying to add.

The table being updated: LastSendDate

My Query:

SELECT ac.EmailName, max(ac.EventDate) as "LastSent"
FROM Avtive_Send_Log ac
WHERE ac.EventDate IS NOT NULL
group by ac.EmailName

Somehow I'd like to add something to the effect of:

and ac.EventDate > LastSendDate.LastSent

Not sure how to do the test condition on the table being updated.
Thanks.

hi

hope this helps

create sample data script

DROP TABLE IF EXISTS #Active_Send_Log
DROP TABLE IF EXISTS #LastSendDate

CREATE TABLE #LastSendDate ( EmailName VARCHAR(100) , LastSent DATE )
INSERT INTO #LastSendDate SELECT 'QWE@GMAIL.COM','2022-1-15'
INSERT INTO #LastSendDate SELECT 'abc@GMAIL.COM','2022-2-19'

CREATE TABLE #Active_Send_Log ( EmailName VARCHAR(100) , EventDate DATE )
INSERT INTO #Active_Send_Log SELECT 'QWE@GMAIL.COM','2022-2-12'
INSERT INTO #Active_Send_Log SELECT 'QWE@GMAIL.COM','2022-2-14'
INSERT INTO #Active_Send_Log SELECT 'QWE@GMAIL.COM',null
INSERT INTO #Active_Send_Log SELECT 'abc@GMAIL.COM','2022-2-12'
INSERT INTO #Active_Send_Log SELECT 'abc@GMAIL.COM','2022-2-17'

; WITH cte AS ( SELECT EmailName , MAX(EventDate) AS MAX_EVENTDATE FROM #Active_Send_Log GROUP BY EmailName ) 
	UPDATE 
		A
	SET 
		A.LastSent = CASE WHEN A.LastSent < B.MAX_EVENTDATE THEN B.MAX_EVENTDATE ELSE A.LastSent END  
	FROM 
	   #LastSendDate A 
		  JOIN
	   cte B 
		  ON A.EmailName = B.EmailName

Thanks Harishgg1!

This works is SQL, but still having trouble implementing in SOQL.
I'll see how I can tweak it.