IN Clause问题

时间:2015-07-07 08:52:12

标签: sql oracle

我有一个这样的SQL输出表

ITEM,LOC,PERIOD,QUANTITY
101,US,07/22/2015,500
101,US,07/02/2015,0
102,LON,07/22/2015,0
102,LON,07/02/2015,1000

但我想要输出表如下,

ITEM LOC 07/22/2015 07/02/2015
101  US   500             0
102  LON   0            1000

请找到我在下面使用的代码,

select * from
(
select item, loc, period, quantity
from example
)
pivot
(
sum (quantity) for period in ('22/JUL/2015','02/JUL/2015'));

如果是2个日期,则在提及'IN'条款时没有问题 如果是1000个日期,如每周,每月和每日。怎么样?

下面的命令不适用于'IN'子句。

SELECT PERIOD FROM EXAMPLE WHERE PERIOD < TO_DATE(22/JUL/2015);

你能帮我解决这个问题吗?

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

您的问题可能是不兼容的数据类型。如果表上的句点列是DATE类型,则您尝试将字符串/ VARCHAR与DATE类型进行比较。

如果期间列是DATE,请尝试将IN更改为

SELECT period FROM example WHERE period < DATE '2015-07-22';

SELECT period FROM example WHERE period < TO_DATE('22/JUL/2015', 'DD/MON/YYYY');