2013-04-09 64 views
0

我试图做我认为是一个相当复杂的case语句。我想实现的是:TOAD SQL CASE声明

当日期+ 365小于OTHERDATE,它等于YETANOTHER日期,那么“正确”

现在我的代码如下所示:

(CASE WHEN ((X2.TERMDATE + 365) < X1.LASTHIRE) IS (X1.ORIGINALHIRE) THEN 'Correct' 

WHEN ((X2.TERMDATE + 365) < X1.LASTHIRE) IS (X3.LASTHIRE) THEN 'Correct' 

WHEN ((X2.TERMDATE + 365) > X1.LASTHIRE) IS (X1.LASTHIRE) THEN 'Correct' 

ELSE 'ERROR' END) 

这可能吗?我哪里错了?

回答

1

我不知道,但我认为这个问题是这些部件:

IS (X1.ORIGINALHIRE) 

你可能有这样的事情

and something = x1.originalhire 
+0

转变是=取代它仍然没有按没有工作。我收到错误'缺少关键词'。 – user1475816 2013-04-09 18:13:30

+0

@ user1475816只是将IS更改为=是不够的。尝试将“IS(X1.ORIGINALHIRE)”更改为“AND(X2.TERMDATE + 365)= X1.ORIGINALHIRE”,并相似地更改其他行。 – 2013-04-09 18:18:07

+0

解决了这个问题(附加一些调整) - 谢谢! – user1475816 2013-04-09 20:23:27