对于月费报告目的,需要显示如下所述的输出.只有当月支付费用时才会在表格中输入数据,否则表格中不会显示该月份.
执行查询
select reg_id, dop,to_char(dop, 'FMMonth,YYYY') Month, status
from fees_status
where dop between ('1-Jul-2012') and ('1-Dec-2012')
Run Code Online (Sandbox Code Playgroud)
输出是
REG_ID DOP MONTH STATUS
AE-8 7/1/2012 July,2012 PAID
AE-8 9/1/2012 September,2012 PAID
AE-8 11/1/2012 November,2012 PAID
AE-8 12/1/2012 December,2012 PAID
Run Code Online (Sandbox Code Playgroud)
对于报告目的,需要输出为
REG_ID DOP MONTH STATUS
AE-8 7/1/2012 July,2012 PAID
AE-8 8/1/2012 August,2012 NOTPAID
AE-8 9/1/2012 September,2012 PAID
AE-8 10/1/2012 October,2012 NOTPAID
AE-8 11/1/2012 November,2012 PAID
AE-8 12/1/2012 December,2012 PAID
Run Code Online (Sandbox Code Playgroud)
有人可以帮助显示上面提到的输出吗?
使用Oracle 11,当我这样做
SELECT XMLELEMENT("dummy", NULL) as xml_1
FROM dual
Run Code Online (Sandbox Code Playgroud)
输出是 <dummy></dummy>
我怎么强行回来 <dummy />?
我有两张桌子.而且我需要organizer_id在2010年到2012年之间组织所有活动的所有活动.
event
---------
event_id
name
year
event_organizer
---------
event_id
organizer_id
Run Code Online (Sandbox Code Playgroud)
我试过这样的事情:
SELECT organizer_id
FROM event_organizer
WHERE event_id IN (SELECT event_id
FROM event
WHERE year>=2010 AND year<=2012);
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为我只需要organizer_id在2010年和2012年之间组织所有事件.我不知道查询应该如何按照我的意愿运行.
如何获取PLSQL中发生异常的过程/函数名称?我需要这个来创建一个包中有问题的过程的日志.
我看过其他类似的问题,它们似乎与我想要做的有点不同。
我有一个查询,我在其中选择两个计数值,我想将一个除以另一个。
这是我的工作代码:
SELECT (SELECT count(DISTINCT s.lastfirst)
FROM students s
JOIN cc ON s.id = cc.studentid
JOIN courses c on cc.course_number = c.course_number
WHERE cc.schoolid='109'
AND c.course_name LIKE 'AP %'
AND substr(cc.termid,0,1) <> '-'
AND cc.dateenrolled BETWEEN to_date('08/01/2010','MM/DD/YYYY') AND
to_date('08/01/2011','MM/DD/YYYY')) as AP,
(SELECT count(DISTINCT s.lastfirst)
FROM students s
JOIN cc ON s.id = cc.studentid
JOIN courses c on cc.course_number = c.course_number
WHERE cc.schoolid = '109'
AND substr(cc.termid,0,1) <> '-'
AND cc.dateenrolled BETWEEN to_date('08/01/2010','MM/DD/YYYY')
AND to_date('08/01/2011','MM/DD/YYYY')) as ttl
FROM DUAL
Run Code Online (Sandbox Code Playgroud)
这是我打破它的地方: …
什么是非学生,律师或教育工作者的职业?按降序字母顺序列出它们?
SELECT Occupation
FROM Viewer
WHERE occupation NOT IN 'student,lawyer,educator'
ORDER BY occupation desc;
Run Code Online (Sandbox Code Playgroud)
我一直在收到错误.我究竟做错了什么?
如何从一组固定的字符中生成PL/SQL中的随机字符串?例如:我想生成一个长度为10的字母数字字符串,它排除某些字符和数字,例如I,O,0等.我找不到DBMS_RANDOM.STRING()使用所需集合播种的方法.PL/SQl中是否有内置方式来执行此操作?
谢谢.
我正在使用此查询在表中查找重复值:
select col1,
count(col1)
from table1
group by col1
having count (col1) > 1
order by 2 desc;
Run Code Online (Sandbox Code Playgroud)
但是我想在同一个表中添加另一个列,如下所示:
select col1,
col2,
count(col1)
from table1
group by col1
having count (col1) > 1
order by 2 desc;
Run Code Online (Sandbox Code Playgroud)
我的ORA-00979第二个查询出错了
如何在搜索中添加其他列?
我正在尝试执行此查询:
select *
from gi_todo_isim
WHERE d_insercao >= '04-JUL-13'
AND d_insercao <= '25-JUL-13'
Run Code Online (Sandbox Code Playgroud)
但是,这我回来这个错误:
ORA-01406 fetched column value was truncated
Run Code Online (Sandbox Code Playgroud)
如果我尝试计算存在多少列:
select count(*)
from gi_todo_isim
WHERE d_insercao >= '04-JUL-13'
AND d_insercao <= '25-JUL-13'
Run Code Online (Sandbox Code Playgroud)
答案是1661597很大的。任何人都可以提供任何解决方案如何执行此查询?
如果一个或多个迭代崩溃,我需要帮助来完成迭代回滚,如果成功,我需要提交所有其他迭代.如果崩溃,它将回滚整个事务.认为这可以通过Savepoints来完成,但我对它们并不是很熟悉.这是我尝试实现的基本示例.
DECLARE
...
BEGIN
FOR i IN 1 .. 10
LOOP
BEGIN
-- Some DML and stored procs with DML
INSERT INTO a .. .;
INSERT INTO b .. .;
INSERT INTO a .. .;
DELETE FROM a .. .;
UPDATE INTO c .. .;
m_package.some_proc_with_dml;
EXCEPTION
WHEN OTHERS THEN
merror := merror + || ', ' || + sqlerrm;
miserror := TRUE;
END;
END LOOP;
COMMIT;
IF miserror THEN
raise_application_error(-20000, merror);
END IF;
END;
Run Code Online (Sandbox Code Playgroud)
提前致谢.