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
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
SET @Pro='SELECT Cola,...,Cold,SUM(Cole) AS Colf...
FROM MyView
WHERE ' +@A+'
GROUP BY Cola,...,Cold'因为Colf是由sum(Cole)的别名来的,本身并不存在,所以在条件语句中当然不能用
而Cola,...,Cold,Cole倒可以
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)
我知道错误原因在此,如果要实现此类查询,并且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
(Colf>f1 and Colg>g1) OR (Colf<f2 and Colg>g2) OR (Colf>f3 and Colg<g3)甚至更复杂的组合,完全由客户决定。
这里有老龟奴zyq_123雍亲正当大版主,还有人称辣花摧魔前青楼名妓smoke当镇小版主,肯定能满足您的需要!!!快来吧~~~~~~