重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
(1)用dblink使你在这个数据库可以查询另一个数据库的信息。注意,权限问题。包括用户权限和查询权限。
企业建站必须是能够以充分展现企业形象为主要目的,是企业文化与产品对外扩展宣传的重要窗口,一个合格的网站不仅仅能为公司带来巨大的互联网上的收集和信息发布平台,成都创新互联面向各种领域:成都楼梯护栏等成都网站设计公司、营销型网站建设解决方案、网站设计等建站排名服务。
(2)看到你的显示结果个人建议用union all来做,就是查出上表的全部数据并上下表E字段与上表E字段相同的字段,然后再排序(如果顺序不重要也可以不排序)。左连接或者右连接的话前面要用case when判断,而且似乎不可行,因为在上表E=a时g也显示在I字段中,所以用union all似乎更加简单一些。
你不是写出来了么?
to_date( to_char(sysdate,'YYYY-MM')|| '-01','YYYY-MM-DD')取得月初
add_months(to_date( to_char(sysdate,'YYYY-MM')|| '-01','YYYY-MM-DD') ,1) 取得下月初
具体 where 子句如下
oper_date = to_date( to_char(sysdate,'YYYY-MM')|| '-01','YYYY-MM-DD')
and oper_date add_months(to_date( to_char(sysdate,'YYYY-MM')|| '-01','YYYY-MM-DD') ,1)
你是按月输入,还是按天输入?就是说是每天都在输入数据,保留三个月,还是在月底输入本月或者月初输入上月,然后保留三个月。其实方法都一样,无非就是利用时间来判断。如果你的时间是日期格式的,那么就用add_month求出三个月前,如果你的日期是字符的比如20010101,那么就to_date再add_month然后利用delete删除就行了。如果是to_char不想用add_month那么就直接判断,那么就截取20010101中的月份的01,然后去比对,如果是01,那么就2001-1,月份10,如果是02,那么就2001-1,月份11,类推,不过04往后就比较简单了,直接减就可以了。
select 本月值, (本月值-上月值)/上月值 本月值环比
select 本月值, (select t3.本月值 from tb,ta t3 where ta.本月日期 = tb.本月日期 and tb.上月日期 = t3.本月日期) as 上月值
from ta
) aaa
字段 between last_day(add_months(trunc(sysdate),-13))+1 and add_months(trunc(sysdate),-12)
--1、考虑到没有数据的也要总结出一条0的记录,那我们需要先生成一张当月的日期中间表
SELECT FDATE
FROM (SELECT TRUNC(SYSDATE, 'MONTH') + LEVEL - 1 AS FDATE
FROM DUAL
CONNECT BY LEVEL = 31) T
WHERE TO_CHAR(FDATE, 'MM') = TO_CHAR(SYSDATE, 'MM')
--2、以上边的表作为左链接的表,与你的数据表的日期做关联查询就可以得出你要的结果
SELECT A.FDATE, NVL(B.FNUM, 0)
FROM (SELECT FDATE
FROM (SELECT TRUNC(SYSDATE, 'MONTH') + LEVEL - 1 AS FDATE
FROM DUAL
CONNECT BY LEVEL = 31) T
WHERE TO_CHAR(FDATE, 'MM') = TO_CHAR(SYSDATE, 'MM')) A
LEFT JOIN (SELECT 日期字段名 AS FDATE, COUNT(1) AS FNUM
FROM 表名 B
WHERE TO_CHAR(日期字段名, 'YYYYMM') = TO_CHAR(SYSDATE, 'YYYYMM')
GROUP BY 日期字段名) B
ON A.FDATE = B.FDATE
ORDER BY A.FDATE