Oye*_*eme 2 sql oracle date ora-00904
我有这个问题:
SELECT TO_CHAR(HON.CREATE_DT,'DD-MM-YYYY') as CREATE_DT,
HON.ACCOUNT_NO,(SELECT TO_CHAR(CURRENT_DATE - INTERVAL '7' DAY, 'DD-MM-YYYY') FROM DUAL) AS NV
FROM medium.HONSCRIBERS HON,
medium.HONSCRIBER_TEXT pcode,
medium.ACCESS_NUMBERS accnr
WHERE
accnr.STATUS_CD = 'CU' AND
pcode.TRADING_AS ='7777777'AND
HON.ACCOUNT_NO=pcode.ACCOUNT_NO AND
HON.ACCOUNT_NO=accnr.ACCOUNT_NO
Run Code Online (Sandbox Code Playgroud)
它返回:
[0] => Array
(
[CREATE_DT] => 28-02-2008
[ACCOUNT_NO] => 20340322
[NV] => 20-05-2011
)
[1] => Array
(
[CREATE_DT] => 28-02-2008
[ACCOUNT_NO] => 20340322
[NV] => 20-05-2011
)
Run Code Online (Sandbox Code Playgroud)
我需要比较日期CREATE_DT和NV我的查询:
SELECT TO_CHAR(HON.CREATE_DT,'DD-MM-YYYY') as CREATE_DT,
HON.ACCOUNT_NO,(SELECT TO_CHAR(CURRENT_DATE - INTERVAL '7' DAY, 'DD-MM-YYYY') FROM DUAL) AS NV
FROM medium.HONSCRIBERS HON,
medium.HONSCRIBER_TEXT pcode,
medium.ACCESS_NUMBERS accnr
WHERE
accnr.STATUS_CD = 'CU' AND CREATE_DT < NV AND
pcode.TRADING_AS ='7777777'AND
HON.ACCOUNT_NO=pcode.ACCOUNT_NO AND
HON.ACCOUNT_NO=accnr.ACCOUNT_NO
Run Code Online (Sandbox Code Playgroud)
我有这个错误:
[code] => 904
[message] => ORA-00904: "NV": invalid identifier
[offset] => 325
Run Code Online (Sandbox Code Playgroud)
为什么他总是给我写信:"NV":标识符无效?感谢帮助.
您不能在同一查询的WHERE子句中使用列别名.你必须重复它是别名的表达式:
AND CREATE_DT < (CURRENT_DATE - INTERVAL '7' DAY)
Run Code Online (Sandbox Code Playgroud)
(注意你不要在这里使用TO_CHAR,否则比较将无法正常工作)
| 归档时间: |
|
| 查看次数: |
2540 次 |
| 最近记录: |