1、不可以为每个用户建立一个视图用户号码,通话开始时间等建立索引
create proceduer 个人用户查询(@user_id char(10))
AS(加)
       exec('create view 个人视图 as select 用户号码,用户类型主叫号码,被叫号码,通话类型,通话费用   from  计费基本表,用户情况基本表')
from  计费基本表,用户情况基本表是笛卡儿集,应加WHERE 。

解决方案 »

  1.   

    忘记了,我加了where的,只是忘记写了,加上去就好了!这个不是主要问题把!
      

  2.   

    create proceduer 个人用户查询(@user_id char(10))
    AS ---少了
      

  3.   

    create proceduer 过程名
    参数
    AS--
    。。
      

  4.   

    查询CREATE proceduer的帮助,有详细的说明
      

  5.   

    create proc 过程名
    @类别名
    as
    exec('create table '+@类别名+'(用户号码,用户类型主叫号码,被叫号码,通话类型,通话费用   from  计费基本表,用户情况基本表')
           这样对了不?列名后再加上数据类型
      

  6.   

    补充:不知道可不可以在建表的时候就同时增加一列,
    例如:通话结束时间-通话开始时间 as 通话时间,还有,我想在建表时就通过一个函数将费用直接算出来加到本表中,不
    知道应该怎么做呢?自连接表就可以了吗?re:
    用计算子段:
    create table 表 (ID,主叫号码,被叫号码,通话开始时间,通话结束时间,通话类型,通话时间 as datediff(ss,通话开始时间,通话结束时间))
    上面是求出单位为秒的通话时间
    ---------------------------------------
    包括ID,用户名,用户号码,用户类型(分为集团和个人)re:作成用户注册一个我就添加一个
    ---------------------------------------
    create proc 个人用户查询(@user_id varchar(10))
    as
    exec('create view 个人视图 as select 用户号码,用户类型主叫号码,被叫号码,通话类型,通话费用   from  计费基本表,用户情况基本表')
    ----------------------------------------
    前台想要进行查询时
    re: 你的做法是错误的你完全可以根据不同的用户在select的时候写where子句,视图只能建一次
    ---------------------------------------
    你的设计有问题!
    计费基本表(ID,主叫号码,被叫号码,通话开始时间,通话结束时间,通话类型,用户id)
    用户基本情况的表(ID,用户名,用户号码,用户类型)
    你在查询的时候:select * from 计费基本表,用户基本情况的表 where 计费基本表.用户id=用户基本情况的表.id and 用户id=@你的用户id变量