[英]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.