como nomear uma coluna através de uma variável
24/08/2012
0
tenho a seguinte situação: o usuário informa um período entre data, de data1 ate data2, e para cada 15 dias dentro dessas datas tenho que criar uma coluna, até ai tudo bem, o detalhe é que o nome da coluna deve ser deve ser variável. Se muda os filtros, muda se o nome da coluna.
como fazer isso?
Vinicius Montes
Posts
24/08/2012
Eduardo Gonçalves
SELECT COUNT(*) AS CONTAGEM FROM TABELA
Dependendo da linguagem em que você está trabalhando, esse "contagem" pode ser substituído pelo conteúdo de uma variável na string SQL que você está montando.
24/08/2012
Vinicius Montes
DECLARE @intervalo INTEGER DECLARE @ini DATETIME DECLARE @fim DATETIME DECLARE @data DATETIME DECLARE @data1 DATETIME DECLARE @data2 DATETIME DECLARE @data3 DATETIME DECLARE @data4 DATETIME DECLARE @data5 DATETIME DECLARE @data6 DATETIME DECLARE @data7 DATETIME DECLARE @data8 DATETIME DECLARE @data9 DATETIME DECLARE @data10 DATETIME DECLARE @data11 DATETIME DECLARE @data12 DATETIME DECLARE @data13 DATETIME DECLARE @data14 DATETIME DECLARE @data15 DATETIME DECLARE @data16 DATETIME DECLARE @data17 DATETIME DECLARE @data18 DATETIME DECLARE @data19 DATETIME DECLARE @data20 DATETIME DECLARE @data21 DATETIME DECLARE @data22 DATETIME DECLARE @data23 DATETIME DECLARE @data24 DATETIME DECLARE @data25 DATETIME DECLARE @data26 DATETIME DECLARE @data27 DATETIME DECLARE @data28 DATETIME DECLARE @data29 DATETIME DECLARE @data30 DATETIME SET @intervalo = 1 SET @ini = '2012-07-01' SET @fim = '2012-07-31' SET @data = @ini SET @data1 = (SELECT DATEADD(day, @intervalo,@data)) IF @data1 > @fim BEGIN SET @data1 = '1900-01-01' END SET @data2 = (SELECT DATEADD(day, @intervalo,@data1)) IF @data2 > @fim BEGIN SET @data2 = '1900-01-01' END SET @data3 = (SELECT DATEADD(day, @intervalo,@data2)) IF @data3 > @fim BEGIN SET @data3 = '1900-01-01' END SET @data4 = (SELECT DATEADD(day, @intervalo,@data3)) IF @data4 > @fim BEGIN SET @data4 = '1900-01-01' END SET @data5 = (SELECT DATEADD(day, @intervalo,@data4)) IF @data5 > @fim BEGIN SET @data5 = '1900-01-01' END SET @data6 = (SELECT DATEADD(day, @intervalo,@data5)) IF @data6 > @fim BEGIN SET @data6 = '1900-01-01' END SET @data7 = (SELECT DATEADD(day, @intervalo,@data6)) IF @data7 > @fim BEGIN SET @data7 = '1900-01-01' END SET @data8 = (SELECT DATEADD(day, @intervalo,@data7)) IF @data8 > @fim BEGIN SET @data8 = '1900-01-01' END SET @data9 = (SELECT DATEADD(day, @intervalo,@data8)) IF @data9 > @fim BEGIN SET @data9 = '1900-01-01' END SET @data10 = (SELECT DATEADD(day, @intervalo,@data9)) IF @data10 > @fim BEGIN SET @data10 = '1900-01-01' END SET @data11 = (SELECT DATEADD(day, @intervalo,@data10)) IF @data11 > @fim BEGIN SET @data11 = '1900-01-01' END SET @data12 = (SELECT DATEADD(day, @intervalo,@data11)) IF @data12 > @fim BEGIN SET @data12 = '1900-01-01' END SET @data13 = (SELECT DATEADD(day, @intervalo,@data12)) IF @data13 > @fim BEGIN SET @data13 = '1900-01-01' END SET @data14 = (SELECT DATEADD(day, @intervalo,@data13)) IF @data14 > @fim BEGIN SET @data14 = '1900-01-01' END SET @data15 = (SELECT DATEADD(day, @intervalo,@data14)) IF @data15 > @fim BEGIN SET @data15 = '1900-01-01' END SET @data16 = (SELECT DATEADD(day, @intervalo,@data15)) IF @data16 > @fim BEGIN SET @data16 = '1900-01-01' END SET @data17 = (SELECT DATEADD(day, @intervalo,@data16)) IF @data17 > @fim BEGIN SET @data17 = '1900-01-01' END SET @data18 = (SELECT DATEADD(day, @intervalo,@data17)) IF @data18 > @fim BEGIN SET @data18 = '1900-01-01' END SET @data19 = (SELECT DATEADD(day, @intervalo,@data18)) IF @data19 > @fim BEGIN SET @data19 = '1900-01-01' END SET @data20 = (SELECT DATEADD(day, @intervalo,@data19)) IF @data20 > @fim BEGIN SET @data20 = '1900-01-01' END SET @data21 = (SELECT DATEADD(day, @intervalo,@data20)) IF @data21 > @fim BEGIN SET @data21 = '1900-01-01' END SET @data22 = (SELECT DATEADD(day, @intervalo,@data21)) IF @data22 > @fim BEGIN SET @data22 = '1900-01-01' END SET @data23 = (SELECT DATEADD(day, @intervalo,@data22)) IF @data23 > @fim BEGIN SET @data23 = '1900-01-01' END SET @data24 = (SELECT DATEADD(day, @intervalo,@data23)) IF @data24 > @fim BEGIN SET @data24 = '1900-01-01' END SET @data25 = (SELECT DATEADD(day, @intervalo,@data24)) IF @data25 > @fim BEGIN SET @data25 = '1900-01-01' END SET @data26 = (SELECT DATEADD(day, @intervalo,@data25)) IF @data26 > @fim BEGIN SET @data26 = '1900-01-01' END SET @data27 = (SELECT DATEADD(day, @intervalo,@data26)) IF @data27 > @fim BEGIN SET @data27 = '1900-01-01' END SET @data28 = (SELECT DATEADD(day, @intervalo,@data27)) IF @data28 > @fim BEGIN SET @data28 = '1900-01-01' END SET @data29 = (SELECT DATEADD(day, @intervalo,@data28)) IF @data29 > @fim BEGIN SET @data29 = '1900-01-01' END SET @data30 = (SELECT DATEADD(day, @intervalo,@data29)) IF @data30 > @fim BEGIN SET @data30 = '1900-01-01' END SELECT pr.procodigo, pr.prodescricao, CASE WHEN fx1.qtd IS NOT NULL THEN fx1.qtd ELSE 0 END AS Faixa_1, CASE WHEN fx2.qtd IS NOT NULL THEN fx2.qtd ELSE 0 END AS Faixa_2, CASE WHEN fx3.qtd IS NOT NULL THEN fx3.qtd ELSE 0 END AS Faixa_3, CASE WHEN fx4.qtd IS NOT NULL THEN fx4.qtd ELSE 0 END AS Faixa_4, CASE WHEN fx5.qtd IS NOT NULL THEN fx5.qtd ELSE 0 END AS Faixa_5, CASE WHEN fx6.qtd IS NOT NULL THEN fx6.qtd ELSE 0 END AS Faixa_6, CASE WHEN fx7.qtd IS NOT NULL THEN fx7.qtd ELSE 0 END AS Faixa_7, CASE WHEN fx8.qtd IS NOT NULL THEN fx8.qtd ELSE 0 END AS Faixa_8, CASE WHEN fx9.qtd IS NOT NULL THEN fx9.qtd ELSE 0 END AS Faixa_9, CASE WHEN fx10.qtd IS NOT NULL THEN fx10.qtd ELSE 0 END AS Faixa_10, CASE WHEN fx11.qtd IS NOT NULL THEN fx11.qtd ELSE 0 END AS Faixa_11, CASE WHEN fx12.qtd IS NOT NULL THEN fx12.qtd ELSE 0 END AS Faixa_12, CASE WHEN fx13.qtd IS NOT NULL THEN fx13.qtd ELSE 0 END AS Faixa_13, CASE WHEN fx14.qtd IS NOT NULL THEN fx14.qtd ELSE 0 END AS Faixa_14, CASE WHEN fx15.qtd IS NOT NULL THEN fx15.qtd ELSE 0 END AS Faixa_15, CASE WHEN fx16.qtd IS NOT NULL THEN fx16.qtd ELSE 0 END AS Faixa_16, CASE WHEN fx17.qtd IS NOT NULL THEN fx17.qtd ELSE 0 END AS Faixa_17, CASE WHEN fx18.qtd IS NOT NULL THEN fx18.qtd ELSE 0 END AS Faixa_18, CASE WHEN fx19.qtd IS NOT NULL THEN fx19.qtd ELSE 0 END AS Faixa_19, CASE WHEN fx20.qtd IS NOT NULL THEN fx20.qtd ELSE 0 END AS Faixa_20, CASE WHEN fx21.qtd IS NOT NULL THEN fx21.qtd ELSE 0 END AS Faixa_21, CASE WHEN fx22.qtd IS NOT NULL THEN fx22.qtd ELSE 0 END AS Faixa_22, CASE WHEN fx23.qtd IS NOT NULL THEN fx23.qtd ELSE 0 END AS Faixa_23, CASE WHEN fx24.qtd IS NOT NULL THEN fx24.qtd ELSE 0 END AS Faixa_24, CASE WHEN fx25.qtd IS NOT NULL THEN fx25.qtd ELSE 0 END AS Faixa_25, CASE WHEN fx26.qtd IS NOT NULL THEN fx26.qtd ELSE 0 END AS Faixa_26, CASE WHEN fx27.qtd IS NOT NULL THEN fx27.qtd ELSE 0 END AS Faixa_27, CASE WHEN fx28.qtd IS NOT NULL THEN fx28.qtd ELSE 0 END AS Faixa_28, CASE WHEN fx29.qtd IS NOT NULL THEN fx29.qtd ELSE 0 END AS Faixa_29, CASE WHEN fx30.qtd IS NOT NULL THEN fx30.qtd ELSE 0 END AS Faixa_30 FROM produtos pr LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @ini AND mo.mprdtemissao < @data1 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx1 ON pr.prorecnum = fx1.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data1 AND mo.mprdtemissao < @data2 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx2 ON pr.prorecnum = fx2.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data2 AND mo.mprdtemissao < @data3 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx3 ON pr.prorecnum = fx3.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data3 AND mo.mprdtemissao < @data4 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx4 ON pr.prorecnum = fx4.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data4 AND mo.mprdtemissao < @data5 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx5 ON pr.prorecnum = fx5.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data5 AND mo.mprdtemissao < @data6 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx6 ON pr.prorecnum = fx6.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data6 AND mo.mprdtemissao < @data7 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx7 ON pr.prorecnum = fx7.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data7 AND mo.mprdtemissao < @data8 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx8 ON pr.prorecnum = fx8.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data8 AND mo.mprdtemissao < @data9 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx9 ON pr.prorecnum = fx9.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data9 AND mo.mprdtemissao < @data10 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx10 ON pr.prorecnum = fx10.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data10 AND mo.mprdtemissao < @data11 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx11 ON pr.prorecnum = fx11.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data11 AND mo.mprdtemissao < @data12 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx12 ON pr.prorecnum = fx12.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data12 AND mo.mprdtemissao < @data13 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx13 ON pr.prorecnum = fx13.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data13 AND mo.mprdtemissao < @data14 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx14 ON pr.prorecnum = fx14.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data14 AND mo.mprdtemissao < @data15 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx15 ON pr.prorecnum = fx15.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data15 AND mo.mprdtemissao < @data16 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx16 ON pr.prorecnum = fx16.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data16 AND mo.mprdtemissao < @data17 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx17 ON pr.prorecnum = fx17.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data17 AND mo.mprdtemissao < @data18 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx18 ON pr.prorecnum = fx18.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data18 AND mo.mprdtemissao < @data19 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx19 ON pr.prorecnum = fx19.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data19 AND mo.mprdtemissao < @data20 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx20 ON pr.prorecnum = fx20.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data20 AND mo.mprdtemissao < @data21 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx21 ON pr.prorecnum = fx21.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data21 AND mo.mprdtemissao < @data22 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx22 ON pr.prorecnum = fx22.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data22 AND mo.mprdtemissao < @data23 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx23 ON pr.prorecnum = fx23.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data23 AND mo.mprdtemissao < @data24 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx24 ON pr.prorecnum = fx24.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data24 AND mo.mprdtemissao < @data25 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx25 ON pr.prorecnum = fx25.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data25 AND mo.mprdtemissao < @data26 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx26 ON pr.prorecnum = fx26.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data26 AND mo.mprdtemissao < @data27 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx27 ON pr.prorecnum = fx27.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data27 AND mo.mprdtemissao < @data28 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx28 ON pr.prorecnum = fx28.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data28 AND mo.mprdtemissao < @data29 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx29 ON pr.prorecnum = fx29.prod LEFT JOIN ( SELECT p.prorecnum AS prod, sum(it.impqtde) qtd FROM movimentacoesprodutos mo, itensmovimentacoesprodutos it, produtos p WHERE mo.mprrecnum = it.mprrecnum AND it.prorecnum = p.prorecnum AND mo.mprdtemissao >= @data29 AND mo.mprdtemissao <= @data30 AND mo.tescodigo IN (6,56) AND mo.emicodigoespecifico = 51 AND p.famcodigo = 197 GROUP BY p.prorecnum ) AS fx30 ON pr.prorecnum = fx30.prod WHERE pr.famcodigo = 197 ORDER BY PR.procodigo
Detalhe o nome das colunas é faixa1,faixa2,...Eu gostaria que o nome fosse: @data1, @data2.... ou seja o conteúdo da variável @data
entendeu minha dificuldade?
24/08/2012
Eduardo Gonçalves
24/08/2012
Vinicius Montes
esse sql será executado por uma aplicação do iReport.
grato
Clique aqui para fazer login e interagir na Comunidade :)