CREATE PROCEDURE Test @a VARCHAR(7000)
AS
DECLARE @Pro AS VARCHAR(8000)
SET @Pro='select * from (SELECT Cola,...,Cold,SUM(Cole) AS Colf...
FROM MyView GROUP BY Cola,...,Cold )tem where WHERE ' +@Aexec @Pro

解决方案 »

  1.   

    DECLARE @Pro AS VARCHAR(8000)
    SET @Pro='SELECT Cola,...,Cold,SUM(Cole) AS Colf...
    FROM MyView
    WHERE ' +@A+'
    GROUP BY Cola,...,Cold'因为Colf是由sum(Cole)的别名来的,本身并不存在,所以在条件语句中当然不能用
    而Cola,...,Cold,Cole倒可以
      

  2.   

    如果Colf要根条件字符串中的Colg列筛选后再计算怎么办?
      

  3.   

    try:
    CREATE PROCEDURE Test @a VARCHAR(7000)
    AS
    DECLARE @Pro AS VARCHAR(8000)
    SET @Pro='select * from (SELECT Cola,...,Cold,SUM(Cole) AS Colf...
    FROM MyView GROUP BY Cola,...,Cold )tem where WHERE ' +@A
    exec(@Pro)
      

  4.   

    TO:txlicenhe(不做技术高手) 
    我知道错误原因在此,如果要实现此类查询,并且Colf要根条件字符串中的Colg列筛选后再计算得到怎么办。
      

  5.   

    colf是字段别名,不能直接在查询条件里用。
      

  6.   

    colf是字段别名,不能直接在查询条件里用。
      

  7.   

    如果Colf要根条件字符串中的Colg列筛选后再计算怎么办?
    ----------------------那就再套一层,
    如:
    CREATE PROCEDURE Test @a VARCHAR(7000)
    AS
    DECLARE @Pro AS VARCHAR(8000)
    SET @Pro='select * from (select ..... from (SELECT Cola,...,Cold,SUM(Cole) AS Colf...
    FROM MyView GROUP BY Cola,...,Cold )tem where WHERE ' +@A +')tem2 where ....'exec @Pro
      

  8.   

    TO: CrazyFor(太阳下山明朝依旧爬上来)如果在条件符串中包含如下条件(部分)怎么办:
    (Colf>f1 and Colg>g1) OR (Colf<f2 and Colg>g2) OR (Colf>f3 and Colg<g3)甚至更复杂的组合,完全由客户决定。
      

  9.   

    想找小姐吗,来水园吧!
    这里有老龟奴zyq_123雍亲正当大版主,还有人称辣花摧魔前青楼名妓smoke当镇小版主,肯定能满足您的需要!!!快来吧~~~~~~