oracle查询怎么写
select*fromAWHEREa.DATE>=TO_DATE('2013-7-1','YY-MM-DD')ANDa.DATE<=TO_DATE('2013-8-1',...
select *from A
WHERE a.DATE>=TO_DATE('2013-7-1','YY-MM-DD')
AND a.DATE<=TO_DATE('2013-8-1','YY-MM-DD')
AND a.STATE <> 'N'
这个语句查出一个行数1,然后再加上一个条件
EXISTS
(SELECT 1 FROM B
WHERE a.id=B.id
AND b.flag='OG')
又能得到一个行数2
比例是用2/1,查询要怎么写才能直接得出比列 展开
WHERE a.DATE>=TO_DATE('2013-7-1','YY-MM-DD')
AND a.DATE<=TO_DATE('2013-8-1','YY-MM-DD')
AND a.STATE <> 'N'
这个语句查出一个行数1,然后再加上一个条件
EXISTS
(SELECT 1 FROM B
WHERE a.id=B.id
AND b.flag='OG')
又能得到一个行数2
比例是用2/1,查询要怎么写才能直接得出比列 展开
3个回答
展开全部
你看看下面这个语句满足你的需求不?
select (select count(1) from A
WHERE a.DATE>=TO_DATE('2013-7-1','YY-MM-DD')
AND a.DATE<=TO_DATE('2013-8-1','YY-MM-DD')
AND a.STATE <> 'N'
EXISTS (SELECT 1 FROM B
WHERE a.id=B.id
AND b.flag='OG'))
/(select count(1) from A
WHERE a.DATE>=TO_DATE('2013-7-1','YY-MM-DD')
AND a.DATE<=TO_DATE('2013-8-1','YY-MM-DD')
AND a.STATE <> 'N')
from dual;
select (select count(1) from A
WHERE a.DATE>=TO_DATE('2013-7-1','YY-MM-DD')
AND a.DATE<=TO_DATE('2013-8-1','YY-MM-DD')
AND a.STATE <> 'N'
EXISTS (SELECT 1 FROM B
WHERE a.id=B.id
AND b.flag='OG'))
/(select count(1) from A
WHERE a.DATE>=TO_DATE('2013-7-1','YY-MM-DD')
AND a.DATE<=TO_DATE('2013-8-1','YY-MM-DD')
AND a.STATE <> 'N')
from dual;
展开全部
建议使用minus函数
示例:
select * from a where column1= 'test'
minus
select * from a where column2 = 'test2'
示例:
select * from a where column1= 'test'
minus
select * from a where column2 = 'test2'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没看懂你说的什么意思!
语句太复杂了可以分开执行试一试
语句太复杂了可以分开执行试一试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询