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

解决方案 »

  1.   

    多个表比较恶心,搞个同义词或者弄个专门的表维护这些数据好点select sum(smdxssr) from dbxxxx201.salemanaday@m201_db where smddate=日期 
    union
    select sum(smdxssr) from dbxxxx202.salemanaday@m202_db where smddate =日期
    union
    ...
    union
    ...
      

  2.   

    因为门店很多啊,要union好多条语句啊,还是报错
      

  3.   

    报什么错啊 Baku(计算机上的白痴) 兄的语句应该没有问题啊
      

  4.   

    写个存储过程把这些结果每天导入你的临时表里面,之后直接读取就可以了
    for roomid in 201..301 loop
    execute immediate 'insert into dbtotal select '||roomid||',sum(smdxssr) from dbxxxx'||roomid||'.salemanaday@m'||roomid||'_db where smddate='||日期||';
    commit;
    end loop;
      

  5.   

    也可以用类似上面的循环组成一个大的sql语句(union),用动态语句查
      

  6.   

    因为我们的门店是不断增加的,所以门店数量现在不能确定,因此上面几位的想法并不适合,所以还要再次麻烦各位仁兄,多谢了。
    我们的数据库是oracle的,hem(何明)的代码我也看不懂
    for roomid in 201..301 loop
    execute immediate 'insert into dbtotal select '||roomid||',sum(smdxssr) from dbxxxx'||roomid||'.salemanaday@m'||roomid||'_db where smddate='||日期||';
    commit;
    end loop;
      

  7.   

    hem的代码就是手动把SQL语句拼出来,再执行,应该是可以的啊
      

  8.   

    因为我们的门店是不断增加的,所以门店数量现在不能确定,因此上面几位的想法并不适合,所以还要再次麻烦各位仁兄,多谢了。
    我们的数据库是oracle的,hem(何明)的代码我也看不懂
    for roomid in 201..301 loop
    execute immediate 'insert into dbtotal select '||roomid||',sum(smdxssr) from dbxxxx'||roomid||'.salemanaday@m'||roomid||'_db where smddate='||日期||';
    commit;
    end loop;
    听说用临时表可以解决,不知怎么做,继续期待高手!
      

  9.   

    >我们的数据库是oracle的,hem(何明)的代码我也看不懂
    hem(何明)的代码是让你在delphi/oracle里面写个循环的sql的函数/存储过程。
      

  10.   

    老兄,我可是菜鸟啊,你帮忙就帮到底吧,多谢sungang