select
create_date
,resolved_date
,to_char(create_date, 'YYYY') as year_create
,to_char(create_date, 'MM') as month_create
,to_char(create_date, 'WW') as week_create
,to_char(create_date,'Q') as quarter_create
,to_char(resolved_date, 'YYYY') as year_resolved
,to_char(resolved_date, 'MM') as month_resolved
,to_char(resolved_date, 'WW') as week_resolved
,to_char(resolved_date,'Q') as quarter_resolved
,item
,site
,status
,contact_time
,impact_label
from mytable
where
create_date between to_date('2013/03/01','YYYY/MM/DD') and to_date('2015/08/06','YYYY/MM/DD')
and case item
when '1' then 'a'
when '2' then 'b'
when '3' then 'c'
else null
end
group by
create_date
,resolved_date
,to_char(create_date, 'YYYY')
,to_char(create_date, 'MM')
,to_char(create_date, 'WW')
,to_char(create_date,'Q')
,to_char(resolved_date, 'YYYY')
,to_char(resolved_date, 'MM')
,to_char(resolved_date, 'WW')
,to_char(resolved_date,'Q')
,item
,site
,status
,contact_time
,impact_label
order by item, site, create_date;
有人可以帮我发现
的错误无效的关系运算符
(它逐行说)。我不知道我可能遗漏的地方><= ?
答案 0 :(得分:2)
你的案子结构不合理。试试这个:
SELECT create_date,
resolved_date,
TO_CHAR (create_date, 'YYYY') AS year_create,
TO_CHAR (create_date, 'MM') AS month_create,
TO_CHAR (create_date, 'WW') AS week_create,
TO_CHAR (create_date, 'Q') AS quarter_create,
TO_CHAR (resolved_date, 'YYYY') AS year_resolved,
TO_CHAR (resolved_date, 'MM') AS month_resolved,
TO_CHAR (resolved_date, 'WW') AS week_resolved,
TO_CHAR (resolved_date, 'Q') AS quarter_resolved,
item,
site,
status,
contact_time,
impact_label,
(CASE
WHEN item = '1' THEN 'a'
WHEN item = '2' THEN 'b'
WHEN item = '3' THEN 'c'
ELSE NULL
END)
AS new_column_name
FROM mytable
WHERE create_date BETWEEN TO_DATE ('2013/03/01', 'YYYY/MM/DD')
AND TO_DATE ('2015/08/06', 'YYYY/MM/DD')
ORDER BY item, site, create_date;
答案 1 :(得分:0)
我猜你想要
select
create_date
,resolved_date
,to_char(create_date, 'YYYY') as year_create
,to_char(create_date, 'MM') as month_create
,to_char(create_date, 'WW') as week_create
,to_char(create_date,'Q') as quarter_create
,to_char(resolved_date, 'YYYY') as year_resolved
,to_char(resolved_date, 'MM') as month_resolved
,to_char(resolved_date, 'WW') as week_resolved
,to_char(resolved_date,'Q') as quarter_resolved
,item
,site
,status
,contact_time
,impact_label
,(case item
when '1' then 'a'
when '2' then 'b'
when '3' then 'c'
else null
end) as new_column_name
from mytable
where create_date between to_date('2013/03/01','YYYY/MM/DD')
and to_date('2015/08/06','YYYY/MM/DD')
order by item, site, create_date;
我已删除group by
子句,因为您没有进行任何类型的聚合。由于您显然希望case
语句更改item
列的显示方式,因此我将其移至select
列表。
如果这不是您想要的,那么如果您编辑问题以包含测试用例,那将非常有用。向我们展示表格定义,向我们展示插入几行的DML,向我们展示您想要的结果,并向我们展示您获得的结果。