2013-06-23 117 views
0

我有四个我想要加入的表,并将所有输出一起显示。我不确定Oracle SQL Developer的语法是如何工作的。我知道对于程序员来说这是一个简单的问题,我希望有人能够就代码的外观提出建议。Oracle SQL Developer中的SQL查询

的表是表是:JNL1 JNL2 JNL3 JNL4

JNL1 
JNL2 
JNL3 
JNL4 

我只想显示与用户代码=自动化和日期的结果,是当前的前一天。代码为:

UserCode = 'Automation' AND  
    CONVERT(VARCHAR,LEFT(DATE,8))=CONVERT(VARCHAR(8),GETDATE()-1,112) 

所有这四个表之间共有的键是ItemID,Date和UserCode。

我不确定查询的样子,我可以生成连接表查询和UserCode/Date查询作为单独的查询。但是,当我将它们组合成一个查询时,我会在模糊列名称上出现错误,或者查询运行时数据库中没有显示任何数据。

+0

您能否提供样本数据,预期结果以及您尝试过的代码?另外,该查询标记为“oracle”,但它在示例中使用了SQL Server语法。 –

回答

2

请勿参加表格。 根据您的需要摆脱只有一张桌子和表结构的数据是相同的,那么你可以有多个unions

- 在Oracle数据库中,你不能有列名日期,我假设date列名是c_date -

select ItemID, c_Date, and UserCode 
from Jul1 
where UserCode = 'Automation' 
    AND c_date = trunc(sysdate) -1 
union all 
select ItemID, c_Date, and UserCode 
from Jul2 
where UserCode = 'Automation' 
    AND c_date = trunc(sysdate) -1 
union all 
select ItemID, c_Date, and UserCode 
from Jul3 
where UserCode = 'Automation' 
    AND c_date = trunc(sysdate) -1 
union all 
select ItemID, c_Date, and UserCode 
from Jul4 
where UserCode = 'Automation' 
    AND c_date = trunc(sysdate) -1 

* sysdate是系统的功能将随着时间值返回当前的日期。

+0

如果我想要每个表中的所有列,而不仅仅是ItemID,c_Date和UserCode,代码将如何? –

+0

@KJ ..请告诉..你如何要求所有表中的所有列? 作为您的表名显示这些表存储了相应日期的数据..并且您只想获取昨天的数据..在这种情况下,您将如何从其他三个表中获取数据? –