精华内容
下载资源
问答
  • 如图 7‑12所示为某公司销售订单汇总的数据透视,其数据源为外部数据连接,当该数据透视数据源发生变动时,如果需要将变动后的数据更新到数据透视中,就需要对数据透视进行手动刷新操作。那么,有没有...

    在Excel中,如何定时刷新数据透视表

    如图 7‑12所示为某公司销售订单汇总表的数据透视表,其数据源为外部数据连接,当该数据透视表的数据源发生变动时,如果需要将变动后的数据更新到数据透视表中,就需要对数据透视表进行手动刷新操作。那么,有没有办法设置定时自动刷新数据透视表呢?


    图7‑12销售订单金额汇总表

    解决方案1:

    通过“数据”选项卡的“连接属性”设置数据透视表的刷新频率。

    操作方法

    ※定时刷新数据透视表※

    如图 7‑13所示,单击数据透视表区域中任一单元格→“数据”选项卡→“连接”组→“属性”→在弹出的“连接属性”对话框中单击“使用状况”选项卡→勾选“刷新频率”复选框→在“刷新频率”文本框中设置刷新频率(比如1分钟)→单击“确定”退出“连接属性”对话框。


    图7‑13设置刷新频率

    解决方案2:

    通过“数据透视表工具”的“选项”上下文选项卡设置数据透视表的刷新频率。

    操作方法

    如图 7‑14所示,单击数据透视表区域中任一单元格→“数据透视表工具”的“选项”上下文选项卡→“数据”组→单击“更改数据源”下的下拉按钮→“连接属性”→在弹出的“连接属性”对话框中单击“使用状况”选项卡→勾选“刷新频率”复选框→在“刷新频率”文本框中设置刷新频率(比如1分钟)→单击“确定”退出“连接属性”对话框。


    图7‑14设置刷新频率

    知识扩展

    使用外部数据连接创建数据透视表请参阅疑难176。定时刷新是数据透视表基于外部数据源特有的刷新方式,如果非外部数据源创建的数据透视表想要实现定时刷新,只能通过VBA或者其他方法实现。http://pdftoword.55.la/eb2pdf/

    http://pdftoword.55.la/eb2pdf/
    展开全文
  • 但是数据源表的数据来源是需要查询大量关联表时然后全量录入目标表时,merge into 后面的匹配条件on(0=1) 可以使插入数据效率更高; 具体的执行效率可以看完成同样事物Oracle执行时间的长短; Oracle 9i引入的...

    存储过程中merge into 一般用于增量插入数据,如果是源表全量数据插入目标表常规认为insert into 比merge into 效率更高,

    但是数据源表的数据来源是需要查询大量关联表时然后全量录入目标表时,merge into 后面的匹配条件on(0=1) 可以使插入数据效率更高;

    具体的执行效率可以看完成同样事物Oracle执行时间的长短;

    Oracle 9i引入的功能),其语法如下:

    MERGE INTO table_name alias1 
    USING (table|view|sub_query) alias2
    ON (join condition) 
    WHEN MATCHED THEN 
        UPDATE table_name 
        SET col1 = col_val1, 
               col2 = col_val2 
    WHEN NOT MATCHED THEN 


    在一个同时存在Insert和Update语法的Merge语句中,总共Insert/Update的记录数,就是Using语句中alias2的记录数

    写法如下:

    MERGE INTO T T1
    USING (SELECT '1001' AS a,2 AS b FROM dual) T2
    ON ( T1.a=T2.a)
    WHEN MATCHED THEN
        UPDATE SET T1.b = T2.b
    WHEN NOT MATCHED THEN 
        INSERT (a,b) VALUES(T2.a,T2.b);
    在Oracle 10g中MERGE有如下一些改进: 
    1、UPDATE或INSERT子句是可选的 
    2、UPDATE和INSERT子句可以加WHERE子句 
    3、在ON条件中使用常量过滤谓词来insert所有的行到目标表中,不需要连接源表和目标表 
    4、UPDATE子句后面可以跟DELETE子句来去除一些不需要的行 


    我们通过实例来一一看看如上的新特性 

    1. UPDATE或INSERT子句是可选的 
    在9i里由于必须insert into和update都要存在,也就是不是update就是insert,不支持单一的操作,虽然还是可以曲线救国,呵呵 但是有些过于强势了。而10g里就是可选了,能符合我们更多的需求了 
    比如上面的句子 
    我们可以只存在update或者insert 
    merge into products p using newproducts np on (p.product_id = np.product_id) 
    when matched then 
    update set p.product_name = np.product_name 


    这里,如果匹配就更新,不存在就不管了。 

    2. UPDATE和INSERT子句可以加WHERE子句 
    这也是一个功能性的改进,能够符合我们更多的需求,这个where的作用很明显是一个过滤的条件,是我们加入一些额外的条件,对只对满足where条件的进行更新和insert 
    merge into products p using (select * from newproducts) np on (p.product_id = np.product_id) 
    when matched then 
    update set p.product_name = np.product_name where np.product_name like 'OL%' 


    这里表示只是对product_name开头是'OL'的匹配上的进行update,如果开头不是'OL'的就是匹配了也不做什么事情,insert里也可以加入where 
    比如 
    merge into products p using (select * from newproducts) np on (p.product_id = np.product_id) 
    when matched then 
    update set p.product_name = np.product_name where np.product_name like 'OL%' 
    when not matched then 
    insert values(np.product_id, np.product_name, np.category) where np.product_name like 'OL%' 

    这里注意比较一下,他们返回的结果行数,是有着差异的。 

    3. 在ON条件中使用常量过滤谓词来insert所有的行到目标表中,不需要连接源表和目标表 


    merge into products p using (select * from newproducts) np on (1=0) 
    when matched then 
    update set p.product_name = np.product_name 
    when not matched then 
    insert values(np.product_id, np.product_name, np.category) 


    这个功能一般不太用,我们的insert into本身就支持这样的功能,没有必要使用merge ,但是像插入的每条语句都需要关联复杂表查询可以使用这种语法,执行时间更短;

    4. UPDATE子句后面可以跟DELETE子句来去除一些不需要的行 

    delete只能和update配合,从而达到删除满足where条件的子句的纪录 
    merge into products p using (select * from newproducts) np on (p.product_id = np.product_id) 
    when matched then 
    update set p.product_name = np.product_name delete where p.product_id = np.product_id where np.product_name like 'OL%' 
    when not matched then 
    insert values(np.product_id, np.product_name, np.category) 


    这里我们达到的目的就是 会把匹配的记录的prodcut_name更新到product里,并且把product_name开头为OL的删除掉。

    merge into也是一个dml语句,和其他的dml语句一样需要通过rollback和commit 结束事务。



    展开全文
  • Excel数据透视表数据源自动更新方法

    千次阅读 2021-05-31 10:20:04
    你这个问题要分开来说,第一种情况源数据区域的... 先说第一种情况,如果只是源数据区域的数据发生了变动,只需要在数据透视数据区域里选择任意单元格,点击鼠标右键--在弹出的菜单里,点击刷新即可更新数据。 ...

    这个问题要分开来说,第一种情况源数据区域的范围不变,只是里面的数据发生了变动;第二种情况,源数据的区域范围也发生了变动。


       一、第一种情况

    如果只是源数据区域的数据发生了变动,只需要在数据透视表的数据区域里选择任意单元格,点击鼠标右键--在弹出的菜单里,点击刷新即可更新数据。

       

    二、第二种情况

    就涉及到修改源数据的数据范围了。


    1、列标题固定


        数据区域的列标题是固定不变的这种情况很好解决,只需要在“插入数据透视表”时,在弹出的对话框的“选择一 个表或区域”里选择整列的数据即可解决。
        这样当源数据发生变动后,在透视表里,刷新数据就可以更新了。

     

    2、数据区域的列和行都不确定

     

    这种情况就需要用定义名称 来设置源数据的区域范围。

    定义名称:

        如上图所示,点击“公式”选项卡--点击“定义名称”按钮--在弹出的对话框里设置“名称"
        和“引用位置"。
        我在“引用位置”设置的是一个公式:=OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),COUNTA(Sheet1!$1:$1))这个公式的功能是自动选择所有的有数据的区域。
        不过有两个问题要注意:1、数据区域必须是连续的。2、A列的数据必须是最完整的。
        A设置数据透视表的数据区域

        如上图所示,只需要在插入数据透视表时,在“表/区域”框里输入刚刚定义的数据区域的名称即可。
        这样设置,以后不管是数据变动还是数据区域变动,都可以在数据透视表里通过刷新实现数据更新。
        如果想实现真正的自动更新,可以如下图所示,在数据透视表选项里勾选“打开文件时刷新数据”,这样就可以在每次打开文件时自动的更新数据。

    展开全文
  • 用到的TCODE: ...RSA6 数据源目录 RSO2 维护一般数据源(事务数据/主数据属性/文本) RSA3 提取器检验程序(数据源测试) Step1:TCODE: SE11 创建数据库 表名:ZHBSJ Step2:TCODE: SE11 创建数

    用到的TCODE:

    SE37/SE80函数构建器

    SE11 ABAP字典(包括数据库表/视图/数据类型等)

    SE16 数据浏览器

    RSA6 数据源目录

    RSO2 维护一般数据源(事务数据/主数据属性/文本)

    RSA3 提取器检验程序(数据源测试)


    Step1:TCODE: SE11 创建数据库表

    表名:ZHBSJ


    Step2:TCODE: SE11 创建数据结构

    数据结构名:ZDS_ZHBSJ_STR


    Step3:TCODE: SE80 创建函数组和函数

    函数组:ZDS_ZHBSJ_GRP,函数:ZDS_ZHBSJ

    筛选出“函数组”,以“RSAX”作为关键字搜索我们要作为函数组模板的对象,并右击选择“复制”


    函数组创建完成后,需要复制函数模块,这里我们只需要复制“RSAX_BIW_GET_DATA_SIMPLE”,并输入新函数模块名“ZDS_ZHBSJ”,然后点击“复制”


    这时候我们再查看这个函数组,如下图所示:


    Step4:TCODE: SE37 更改函数信息,修改源代码

    下图中关联类型更改为我们刚创建的数据结构ZDS_ZHBSJ_STR


    这时候,我们就需要更改源代码了

    FUNCTION ZDS_ZHBSJ.
    *"----------------------------------------------------------------------
    *"*"本地接口:
    *"  IMPORTING
    *"     VALUE(I_REQUNR) TYPE  SRSC_S_IF_SIMPLE-REQUNR
    *"     VALUE(I_DSOURCE) TYPE  SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL
    *"     VALUE(I_MAXSIZE) TYPE  SRSC_S_IF_SIMPLE-MAXSIZE OPTIONAL
    *"     VALUE(I_INITFLAG) TYPE  SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL
    *"     VALUE(I_READ_ONLY) TYPE  SRSC_S_IF_SIMPLE-READONLY OPTIONAL
    *"     VALUE(I_REMOTE_CALL) TYPE  SBIWA_FLAG DEFAULT SBIWA_C_FLAG_OFF
    *"  TABLES
    *"      I_T_SELECT TYPE  SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL
    *"      I_T_FIELDS TYPE  SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL
    *"      E_T_DATA STRUCTURE  ZDS_ZHBSJ_STR OPTIONAL
    *"  EXCEPTIONS
    *"      NO_MORE_DATA
    *"      ERROR_PASSED_TO_MESS_HANDLER
    *"----------------------------------------------------------------------

    * Example: DataSource for table SFLIGHT
      TABLES: ZHBSJ.

      DATA: it_data TYPE TABLE OF ZDS_ZHBSJ_STR.
      DATA: wa_data LIKE LINE OF e_t_data.

     TYPES:BEGIN OF TY_T001,
              BUKRS TYPE BUKRS,
              WAERS TYPE WAERS,
            END OF TY_T001.
      DATA:LS_T001 TYPE TY_T001,
           LT_T001 TYPE TABLE OF TY_T001.


    * Auxiliary Selection criteria structure
      DATA: L_S_SELECT TYPE SRSC_S_SELECT.

    * Maximum number of lines for DB table
      STATICS: S_S_IF TYPE SRSC_S_IF_SIMPLE,

    * counter
              S_COUNTER_DATAPAKID LIKE SY-TABIX,

    * cursor
              S_CURSOR TYPE CURSOR.
    * Select ranges
      RANGES: L_R_RYEAR  FOR ZHBSJ-RYEAR,
              L_R_POPER  FOR ZHBSJ-POPER,
              L_R_DOCNR  FOR ZHBSJ-DOCNR,
              L_R_CPUDT  FOR ZHBSJ-CPUDT,
              L_R_RBUKRS  FOR ZHBSJ-RBUKRS.


    * Initialization mode (first call by SAPI) or data transfer mode
    * (following calls) ?
      IF I_INITFLAG = SBIWA_C_FLAG_ON.

    ************************************************************************
    * Initialization: check input parameters
    *                 buffer input parameters
    *                 prepare data selection
    ************************************************************************

    * Check DataSource validity
        CASE I_DSOURCE.
          WHEN 'ZDS_ZHBSJ'.
          WHEN OTHERS.
            IF 1 = 2. MESSAGE E009(R3). ENDIF.
    * this is a typical log call. Please write every error message like this
            LOG_WRITE 'E'                  "message type
                      'R3'                 "message class
                      '009'                "message number
                      I_DSOURCE   "message variable 1
                      ' '.                 "message variable 2
            RAISE ERROR_PASSED_TO_MESS_HANDLER.
        ENDCASE.

        APPEND LINES OF I_T_SELECT TO S_S_IF-T_SELECT.

    * Fill parameter buffer for data extraction calls
        S_S_IF-REQUNR    = I_REQUNR.
        S_S_IF-DSOURCE = I_DSOURCE.
        S_S_IF-MAXSIZE   = I_MAXSIZE.

    * Fill field list table for an optimized select statement
    * (in case that there is no 1:1 relation between InfoSource fields
    * and database table fields this may be far from beeing trivial)
        APPEND LINES OF I_T_FIELDS TO S_S_IF-T_FIELDS.

      ELSE.                 "Initialization mode or data extraction ?

    ************************************************************************
    * Data transfer: First Call      OPEN CURSOR + FETCH
    *                Following Calls FETCH only
    ************************************************************************

    * First data package -> OPEN CURSOR
        IF S_COUNTER_DATAPAKID = 0.

    * Fill range tables BW will only pass down simple selection criteria
    * of the type SIGN = 'I' and OPTION = 'EQ' or OPTION = 'BT'.
          LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'RYEAR'.
            MOVE-CORRESPONDING L_S_SELECT TO L_R_RYEAR.
            APPEND L_R_RYEAR.
          ENDLOOP.

          LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'POPER'.
            MOVE-CORRESPONDING L_S_SELECT TO L_R_POPER.
            APPEND L_R_POPER.
          ENDLOOP.

          LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'DOCNR'.
            MOVE-CORRESPONDING L_S_SELECT TO L_R_DOCNR.
            APPEND L_R_DOCNR.
          ENDLOOP.

          LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'CPUDT'.
            MOVE-CORRESPONDING L_S_SELECT TO L_R_CPUDT.
            APPEND L_R_CPUDT.
          ENDLOOP.

          LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'RBUKRS'.
            MOVE-CORRESPONDING L_S_SELECT TO L_R_RBUKRS.
            APPEND L_R_RBUKRS.
          ENDLOOP.


    * Determine number of database records to be read per FETCH statement
    * from input parameter I_MAXSIZE. If there is a one to one relation
    * between DataSource table lines and database entries, this is trivial.
    * In other cases, it may be impossible and some estimated value has to
    * be determined.
          OPEN CURSOR WITH HOLD S_CURSOR FOR
          SELECT * FROM ZHBSJ WHERE RYEAR IN L_R_RYEAR AND
                                         POPER IN L_R_POPER AND
                                         DOCNR IN L_R_DOCNR AND
                                         CPUDT IN L_R_CPUDT AND
                                         RBUKRS IN L_R_RBUKRS.


        ENDIF.                             "First data package ?

    * Fetch records into interface table.
    *   named E_T_'Name of extract structure'.
        FETCH NEXT CURSOR S_CURSOR
                   APPENDING CORRESPONDING FIELDS
                   OF TABLE it_data
                   PACKAGE SIZE S_S_IF-MAXSIZE.

        IF SY-SUBRC <> 0.
          CLOSE CURSOR S_CURSOR.
          RAISE NO_MORE_DATA.
        ENDIF.

        SELECT BUKRS WAERS FROM T001 INTO CORRESPONDING FIELDS OF TABLE LT_T001.

        SORT LT_T001 BY BUKRS .

        LOOP AT it_data INTO wa_data.
          IF wa_data-ZZPS_PSP_PNR IS NOT INITIAL.
          CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT'
                                EXPORTING
                                  INPUT         = wa_data-ZZPS_PSP_PNR
                               IMPORTING
                                  OUTPUT        = wa_data-ZZWBSID .
          ENDIF.
          READ TABLE LT_T001 INTO LS_T001 WITH KEY  BUKRS = wa_data-RBUKRS BINARY SEARCH ."根据表ZHBSJ和T001的相同字段RBUKRS,在T001中查找对应的本位币货币码WAERS
              IF SY-SUBRC = 0 .
                 wa_data-WAERS = LS_T001-WAERS .
              ENDIF.
          APPEND wa_data TO e_t_data.
          CLEAR wa_data.
        ENDLOOP.


        S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.

      ENDIF.              "Initialization mode or data extraction ?

    ENDFUNCTION.


    Step5:TCODE:RSO2 创建数据源

    数据源名:ZDS_ZHBSJ

    这次的数据源我们以事务数据作为数据源


    填写应用程序组件/简要描述/中间的说明/长文本描述信息


    点击保存图标后,跳到如下界面,将有查询条件的字段在“选择”上选中,然后点击保存,这时候数据源就新增完成了


    Step6:TCODE:RSA3 测试数据源

    输入我们要测试的数据源名称,然后点击“提取”按钮,就可以提取到满足条件的数据记录

    好,到这里,所有的工作都完成了!


    注意:

    数据源创建完成后,在数据结构中若需要新增字段,此新增字段在数据源会默认为字段隐藏,这时候请一定不要忘记取消隐藏!


    展开全文
  • 动态数据源在多数据源的基础上,要实现数据源的动态切换。这两种复杂系统的数据库联接有相关性,也有不同应用场景的区别。如要连接两个不同的业务库,一般会使用多数据源,如要动态切换不同数据源的相同业务库,会...
  • Java连接程序数据源

    千次阅读 多人点赞 2016-08-01 10:33:12
    在实际应用中,可能需要根据表名动态地改变数据源,比如在程序数据集中,通过传进的表名参数,到数据库取出对应的作为数据源。例如,FineReport是通过AbstractTableData抽象类来读取数据源的,而上述所有的数据...
  • 本文介绍两种切换数据库的方法。 方法1:数据库信息都配置在spring xml中,适用于一般数据库切换。...方法2:将数据库信息配置在默认数据源中,适用于切换数据库操作同一方法,相当于批量执行方法。...
  • Spring Boot, Spring Cloud项目,变单数据源为多数据源配置问题
  • SpringBoot多数据源切换,AOP实现动态数据源切换 操作数据一般都是在DAO层进行处理,可以选择直接使用JDBC进行编程 或者是使用多个DataSource 然后创建多个SessionFactory,在使用Dao层的时候通过不同的...
  • 数据源系列 1、spring boot2.0 +Mybatis + druid搭建一个最简单的多数据源 ...前两篇博客介绍了用基本的方式数据源,可以应对一般的情况,但是遇到一些复杂的情况,比如:动态增减数据源数据源分组,纯粹多
  • Spring动态切换多数据源Demo

    千次下载 热门讨论 2015-02-03 15:24:55
    请自行修改com/resources/datasource.properties中数据库配置,Demo中配置的两个数据源,一个是Mysql,一个是Oracle。 运行之前请自行建立数据库的
  • 我们数据透视的时候,首先就要输入数据源的范围,一般向导会默认已有数据区,如下图所示: 不过,这样标明的数据区是没有办法适应记录的变化的,因为,当记录超过这个范围时,多余的记录将统计不到,首先想到...
  • 一直都知道excel可以用来简易数据库,并可以用于ODBC数据源,但是每次用excel做好,在vc6里面选择相应的源,再点确定出来都没有任何可用的,非常郁闷。 直到今天下定决心好好来找一下原因,才发现问题所在。...
  • SSAS_创建数据源数据源视图

    千次阅读 2012-05-30 15:43:35
    这里将从新建分析服务项目开始,逐步实现数据源数据源试图的创建。 创建 Analysis Services 项目 启动VS2010或SQL Server Data Tools,如下图所示,新建一个Analysis Services 多维和数据挖掘项目 定义新...
  • 数据源的配置

    万次阅读 2018-10-23 20:14:06
    页面查询实在太慢,所以准备把dau_baseinfo迁移到clickhouse,此时就需要再引入一个数据源,即clickhouse对应的数据源 下面开始配置多数据源 第一步:创建一个DynamicDataSource的类,继...
  • 在sqlserver2008中,把子查询数据源时,如果没有别名,将会提示错误,如下:  如果添加了别名,如加了个“a”,则正确查询:  而在Oracle中,不添加别名也不会出错,如下:
  • 原因:excel工作簿的文件名可能有[]符号,需要去掉才能正常使用
  • 再比如要两个数据库之间的数据转换,从一个数据库读取数据写到另一个数据库中,等等这些情况都需要系统使用两个或多个数据源。那么该如何配置多个数据源呢?我这里使用的是spring管理,数据库连接池使用的是阿里的...
  • 项目地址:https://github.com/helloworlde/SpringBoot-DynamicDataSource/tree/dev 在 Spring Boot... 在这个项目中使用注解方式声明要使用的数据源,通过 AOP 查找注解,从而实现数据源的动态切换;该项目为 Product
  • SpringBoot中多数据源的配置

    万次阅读 2018-07-27 15:11:08
    在实际项目中,一个工程配置多个数据源很常见,工程可能会根据业务或者模块访问不同的数据库或;今天笔者就springboot中配置多数据源作个详细的讲解 2.实现方案 注意:一个应用工程中有且只有一个启动类,其...
  • 代码生成可以根据选择的数据源加载等源信息 数据源管理要支持动态配置,实时生效 附录效果图 实现思路 本文提供方法仅供类似简单业务场景,在生产环境和复杂的业务场景 请使用分库分表的中间件(例如mycat)...
  • Springboot整合Mybatis多数据源配置

    万次阅读 热门讨论 2019-06-09 14:06:44
    数据源配置类: 次数据源配置类: 三、项目结构(重点是mapper结构和配置类里的路径对应) 四、启动类——启动类需要取消加载数据源自动配置 五、测试: controller: Service: Mapper: 数据...
  • Spring Boot 默认数据源 HikariDataSource 与 JdbcTemplate

    万次阅读 多人点赞 2018-08-19 08:37:07
    默认数据源 CRUD 数据库 PhoneController 测试结果 自动配置原理 DataSourceConfiguration 1、《Spring Boot 数据库访问 简介》中已经介绍,Spring Boot 可以通过多种方式访问各种数据库,本文将介绍 Spr...
  • SpringBoot2.0 jpa多数据源配置

    万次阅读 热门讨论 2017-12-26 18:15:34
    随着Springboot升级到2.0,原来1.5.x的Jpa多数据源配置不能用了。现在总结一下Springboot2.0的jpa多数据源配置 连接池还是用druid,但是不能用druid的starter了,譬如在1.5.x时用的是 &lt;dependency&...
  • <dependency> <groupId>com.xiaoqiang.tool.general.excel</groupId> <artifactId>general-export-tool</artifactId> <version>1.0.0</version> ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 924,298
精华内容 369,719
关键字:

如何做数据源表