Teradata SQL - Union和Where子句

时间:2014-05-14 01:15:44

标签: sql

有一个Teradata SQL UNION查询,需要知道如何从2个表中提取数据,其中UNION的第一部分中的日期在UNION查询的第二部分中的日期之前。例如:

Select
name1,date1
from table1
UNION
Select
name2,date2
from table2
where date2 < date1

希望只查看date2在date1之前的记录。这只是我需要从数据中检索的一个示例。

选择 Pat_Name,Provider,Clinic_Encounter_Date 从诊所表 联盟 Pat_Name,Provider,Hosp_Encounter_Date 从医院表 哪里 Hosp_Encounter_Date&lt; Clinic_Encounter_Date;

我的SQL查询运行正常,但是当我添加WHERE子句时,我不断收到错误消息。 Teradata只是不喜欢我!!!

希望这会有所帮助。 : - )

提前感谢您的协助。

1 个答案:

答案 0 :(得分:0)

UNION之前和之后的SQL是独立的SQL,因此在第二个语句中它不识别date1。即以下声明无效。

Select name2,date2 from table2 where date2 < date1

您需要将语句更改为

Select
name1,date1
from table1
UNION
Select
name2,date2
from table2
where date2 < (select Min(date1) from table1)