请教一个汇总的思路?
一个比较复杂的汇总,只能汇总时生成多个临时表,然后再连接各个临时表,才能得出结果,我在查询分析器操作可以,可是我要用vb来实现这一系列操作,不知在程序中能否实现。
即在vb中这样操作:
1。汇总生成临时表#tmp1
2。汇总生成临时表#tmp2
3.连接两个临时表#tmp1和#tmp2,然后汇总生成结果表#tmp3
4.将#tmp3以ado记录集的形式返回。不知这种思路是否可以,是不是有比这更好的思路。
请前辈指教。
-----------------------------
有人这样回答:
你可以建立一个空的表,要汇总的时候将数据提取到表中,再读取出来,随后清空数据表
具体方式是:汇总数据-->读取显示数据-->清空数据表    这三个事件一次性完成这样多客户的话每个客户读取时都是在短时间内占用该表,且该表在程序运行前后都是空表
-------------------------------------------------
可是我认为不好。举例如下:
比如客户A汇总时已生成这个表,可这时客户A要汇总,此时将删除这个表,那么客户A的汇总结果也没了。所以说冲突是不可避免的,这也是我只想用局部临时表的原因。

解决方案 »

  1.   

    为什么你不用视图完成呢?我一直不认为临时表是最好的办法,实在没办法的时候,我会把数据交互存储,总之,我不会用VB直接去读。这些是应该数据库完成的问题。冲突可以用事务保证。
    ------------------------------------
    谢谢,没明白前辈的意思?
    1。视图可以保存汇总数据,它要随时变化的。
    2。数据交互存储是什么意思?
    3。VB直接去读又是什么意思/
    请明示。再次感谢。
      

  2.   

    创建临时表的思路是没问题的,但你也可以用其他形式,比如 select t.x,tt.y from (第一个汇总查询) as t inner join (第二个汇总查询) as tt on......
    这样两个括号里的查询结果就是保存在缓冲里面的,而不是保存在TEMPDB表里面的。
      

  3.   

    View是即时查询的结果(好像比临时表好),应当可以满足你的需要 
      

  4.   

    在存贮过程中可以用select * from #tabe 返回的。
      

  5.   

    創建view是好得選擇,view保存得不是數據,是表關聯
    或者直接用結果集關聯也可以省去臨時表
      

  6.   

    1。视图可以保存汇总数据,它要随时变化的。
    //视图是虚拟表,不存在数据,你原表关系是什么,显示都是不一样的,这和变不变有啥问题2。数据交互存储是什么意思?
    3。VB直接去读又是什么意思/
    //我这2个意思是说,用视图去做比较好
    临时表在VB中间不适合用