-1

当它们分开时,这两个查询都能完美运行。但是,当我尝试将其组合到一个查询中时,就会遇到问题。任何人都可以建议具有正确语法的代码以使其在 Oracle SQL Developer 中运行。

第一个查询:

 select * from JnlDataSection, JnlList, JnlMedium, JnlMediumMove
 where 
 JnlDataSection.ItemID = JnlList.ItemID AND
 JnlList.ItemID = JnlMedium.ItemID AND
 JnlMedium.ItemID = JnlMediumMove.ItemID;

第二个查询(这需要合并到第一个查询中):

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

注意:我在 Oracle SQL Developer 上使用 Microsoft SQL Server 数据库。

4

2 回答 2

1

如果我正确理解您的评论,所有四个正在连接的表都包含名为UserCodeand的列Date。所以我希望你得到一个错误,因为解析器无法判断你指的是哪个表的列。您必须像这样对它们进行限定:

select * from JnlDataSection, JnlList, JnlMedium, JnlMediumMove
 where 
 JnlDataSection.ItemID = JnlList.ItemID AND
 JnlList.ItemID = JnlMedium.ItemID AND
 JnlMedium.ItemID = JnlMediumMove.ItemID AND
 JnlDataSection.UserCode = 'Automation' AND     
 LEFT(JnlDataSection.Date,8)=CONVERT(VARCHAR(8),GETDATE()-1,112)

在不了解您的数据库设计的情况下,我不知道您是否应该在所有四个表上添加这些条件,或者只添加一个,或者是否重要。

于 2013-06-24T13:38:13.457 回答
1

最近我在我的 MacBook Pro 中安装了“Oracle SQL Developer”软件以连接到我的 Microsoft SQL Server 数据库,但是我使用“Microsoft SQL Server Management Studio”编写的“T-SQL”脚本不起作用,返回了 sintax错误。
我在网上搜索,发现“Oracle SQL Developer”软件不适用于 Microsoft 的 T-SQL 语言。因此,“Oracle”在他们的软件中包含了一个工具(Translation Scratch Editor),将“T-SQL”语言脚本转换为“PL/SQL”语言。要使用此工具,请访问菜单Tools > Migrate > Scratch Editor,然后您可以将您的 T-SQL 代码转换为“PL/SQL”以由“

我正在寻找更好的解决方案,因此这是我目前找到的最佳解决方案。我希望这个技巧可以帮助你快速解决你的“问题”。

“PL/SQL”语言与 T-SQL 有一些差异,但是您可以轻松地用“PL/SQL”语法替换,在 Google 上搜索。

对不起我的英语,但我正在尽我所能提供帮助。

于 2016-05-03T19:30:24.757 回答