[英]SQL - Compare values from two different tables?
所以我有兩個不同的表, update_metadata
的一行看起來像:
|Updated_Date|
2020-06-05 00:00:00.0000000
和另一個表,我從中查詢單個最大日期:
select max(distinct Date_Col) from data_table
基本上,如果Updated_Date
< Date_Col
,即如果data_table
已更新,我想運行一個過程Update_New_Data
。 但我不確定如何准確設置查詢。 我試過了:
WITH data_date AS (select max(distinct Date_Col) FROM data_table),
update_date AS (select Updated_Date from update_metadata)
IF ( update_date < data_date )
BEGIN
**procedure SQL query here**
END
但我試過了,看起來我不能以這種方式將WITH
與IF
一起使用,來自這個錯誤:
關鍵字“IF”附近的語法不正確。
如何正確地做到這一點?
不需要 CTE - 只需將您的查詢直接移動到IF
語句中,如下所示:
IF (SELECT Updated_Date FROM update_metadata) < (SELECT MAX(Date_Col) FROM data_table)
BEGIN
EXEC Update_New_Data;
END;
注意:最佳實踐是使用模式完全限定所有表名和存儲過程名稱,例如dbo.Update_New_Data
你也不需要DISTINCT
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.