一个Oracle下的SQL语句,求大神帮忙

有表A和表B,表A有字段type(number类型的)和date,trassn,表B有字段bill和status,trassn.A和B通过trassn联系起来.SQL语句要查询type,date,trassn,status,bill五个字段.当A的type=1时,B中要返回A中trassn对应的status和bill,当A中的type不为1时,B中的status返回为NULL,bill为0.0
A中有很多条记录,B中所有的记录只是A中的一部分,我要把A中所有记录都查出来.

第1个回答  2013-05-28
select A.type,A.date,A.trassn,
decode(A.type,1,status,null) as status,
decode(A.type,1,B.bill,0.0) as bill
from A,B
where A.trassn=B.trassn追问

这样不行,A中的某些记录B中是没有的,你这样写的话只能查询出B中必须有的记录.

追答

没有你怎么关联?
那你就写
select A.type,A.date,A.trassn,
decode(A.type,1,status,null) as status,
decode(A.type,1,B.bill,0.0) as bill
from A,B
where A.trassn=B.trassn(+)

本回答被提问者采纳

求一条 oracle数据库统计用的sql语句,如下图所示,请高手帮忙解答。
investorid,(sumprofits\/(lastday+sumfundout-allProfits))*100% 投资收益率 from (select investorid,sum(profits) sumprofits, --该投资者所有交易日利润总和 sum(fundout) sumfundout, --该投资者所有交易日出金总和 (select quanyi from fund ff where ff.investorid=f.investorid and ff.tra...

Oracle定义事务的SQL语句
1、select t1.ename,t2.ename as mgrname,d.dname from scott.emp t1,scott.emp t2,scott.dept d where t1.mgr=t2.empno and t2.deptno=d.deptno 2、select d.from scott.dept d,(select rownum n,tt.from (select count(*)c,deptno from scott.emp group by deptno order by c desc...

一个oracle中的SQL表达式
这个不是用一条SQL就能实现的问题,首先字段的列数就不固定。oracle中的SQL语句,不用指定具体列数的选择列表只有用*通配符。显然是不能实现的。说到底这是个行列转至的问题,可以用PL\/SQL实现。步骤1.取得所需数据。2.转至处理后放入临时表中。3.从临时表中取得数据。(当然要用*通配符)...

关于ORACLE中SQL操作,请大家把下面语句的意思给我详细的解释下,谢谢
||是SQL连接符。chr(13)char(10)是回车换行。select table_name from user_tables;是查询user下的所有表。drop table table_name;是删除表。整句话的意思就是删除user下的所有表。下一句同理,删除的是user下的所有视图。

在ORACLE,怎么用一个SQL语句查询一个已知表的主键字段
1.以SCOTT用户登录。2.执行以下代码。SET PAGESIZE 0 SET LONG 90000 SELECT dbms_metadata.get_ddl('TABLE', table_name) FROM user_tables where table_name='EMP';3.查找类似CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO")的内容,后面部分就是表的主键字段。如不知表所属的owner,可以用:...

oracle的sql语句
你很高啊,答案很明显;第一条语句可以解释为 select * from orders where ordercode in ('FH-ZD-1324052,FH-ZD-1323759,FH-ZD-1323753,FH-ZD-1323751,FH-ZD-1323748,FH-ZD-1323722');你可以自己比较一下和第二条语句的区别了...

Oracle如何通过一段SQL语句判断查询了哪些表?
sql查询由两部分组成 (1)查询的显示内容部分的表,也就是slelct后面的显示部分的表,那么就一定是查询的,比如这里的select t1.a,t2.b,t3.c,那么不管怎么说一定查询了 t1,t2,t3三张表,如果只查询了t1,t2两张,那么t3部分的数据是怎么出来的?所以,只要有显示的表就一定是查询的表。包括...

【求助】oracle中sql语句 此列列表已索引的解决办法
1、在计算机中,打开Oracle的连接程序,用新建的数据库管理员。2、 接着,在【Oracle服务器】的窗口上,在输入窗口中输入SQL查询语句,并单击【执行】按钮,可以看到查询不到索引表,需要调整SQL语句。3、然后,在【SQL工作表】的窗口上,输入查询索引表的SQL语句。4、接着,在【SQL工作表】的窗口上...

Oracle数据库sql语句
DML操作(insert ,delete ,update)之后,一定要使用commit或rollback命令来结束该事务,否则直接关闭SQL Plus,数据库默认rollback之前未提交的事务,所以今天你在select的时候 会显示未选定行。而手动输入commit,rollback 这类的命令,是显示的提交事务(完成事务)。如果在DML操作之后未及时显示的提交,...

我要查询oracle表的字段名sql语句怎么写
SELECT * FROM DBA_TAB_COLUMNS WHERE TABLE_NAME = 'STUDENT'

相似回答