我们的系统是基于delphi和oracle开发的。
我这里有n个门店,门店不断增加,所以具体门店数量不确定,其都有自己的店名称和数据库,单个门店查询我可以实现,sql语句如下。但同时查各个门店某一天的销售收入就不知道怎么办了,请教各位仁兄了。多谢!
下面的语句是查   201门店的销售收入
select sum(smdxssr) from dbxxxx201.salemanaday@m201_db where smddate=日期                  202门店的销售收入
select sum(smdxssr) from dbxxxx202.salemanaday@m202_db where smddate =日期
                      。
                      。
                      。
                      。
                      。以上可以看出其店名称和数据库都有规律,且名称和数据库编号都是对应的

解决方案 »

  1.   

    dbxxxx201.salemanaday@m201_db前面的dbxxxx201应该是表空间,后面的salemanaday@m201_db才是数据表。如果你有多个表空间,那好像没有办法解决。
    如果是在同一个表空间中的多张表,可以试着以下办法解决:
    ADODataSet1.CommandText := 'select table_name from user_table where table_name like ''salemanaday@m%'''
    //该语句作用是查询oracle数据库中表名为类似salemanaday@m的所有表
    ADODataSet1.Open
    While not ADODataSet1.Eof
      //然后
      select sum(smdxssr) from ' + ADODataSet1.FieldByName("table_name") + ' where smddate=日期'
     ADODataSet1.Next;
    Endselect sum(smdxssr) from dbxxxx201.salemanaday@m201_db where smddate=日期                  202门店的销售收入
    select sum(smdxssr) from dbxxxx202.salemanaday@m202_db where smddate =日期
      

  2.   

    多谢slzzg(懒虫),
    dbxxxx201 是门店名称,salemanaday是表名,m201_db是门店对应的数据库
      

  3.   

    先把这些database link都建立了 然后动态的组和sql 进行查询
      

  4.   

    我们的系统是基于delphi和oracle开发的。
    我这里有n个门店,门店不断增加,所以具体门店数量不确定,其都有自己的店名称和数据库,单个门店查询我可以实现,sql语句如下。但同时查各个门店某一天的销售收入就不知道怎么办了,请教各位仁兄了。多谢!dbxxxx201 是门店名称,salemanaday是表名,m201_db是门店对应的数据库
    下面的语句是查   201门店的销售收入
    select sum(smdxssr) from dbxxxx201.salemanaday@m201_db where smddate=日期                  202门店的销售收入
    select sum(smdxssr) from dbxxxx202.salemanaday@m202_db where smddate =日期
                          。
                          。
                          。
                          。
                          。以上可以看出其店名称和数据库都有规律,且名称和数据库编号都是对应的
      

  5.   

    n个门店用一条SQL统计太麻烦,而且数据库链太多时,SQL语句有时候会出错!!!--201门店的销售收入
    Select Sum(销售收入) from
    (
    select sum(smdxssr)as 销售收入 from dbxxxx201.salemanaday@m201_db where smddate=日期 
    union all 
    --202门店的销售收入
    select sum(smdxssr)as 销售收入 from dbxxxx202.salemanaday@m202_db where smddate =日期
    union all
    ...
    )