varchar(8000)

25/02/2004 - 22:00 por Jorge Aguilar | Informe spam
Hola a todos estoy haciendo un store variable asi com sigue

declare @strsqlp varchar(8000),
@id_empresa varchar(2), @id_sucursal varchar(2),
@fecha_ini datetime, @fecha_fin datetime,
@tipo varchar(1),
@id_linea varchar(2), @id_grupo varchar(2), @id_tipo varchar(2), @id_familia
varchar(2), @id_articulo varchar(2),
@id_tpo_cliente varchar(10), @id_cliente varchar(10), @strsql varchar(8000)

set @strsql = '
select
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_unidades,0)
when "E" then isnull(tot_exportacion_unidades,0)
else isnull(tot_nacional_unidades,0) + isnull(tot_exportacion_unidades,0)
end ) as Unidades,
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_moneda_local,0)
when "E" then isnull(tot_exportacion_moneda_local,0)
else isnull(tot_nacional_moneda_local,0) +
isnull(tot_exportacion_moneda_local,0) end ) as Soles,
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_moneda_base,0)
when "E" then isnull(tot_exportacion_moneda_base,0)
else isnull(tot_nacional_moneda_base,0) +
isnull(tot_exportacion_moneda_base,0) end ) as Dolares
from ventas_resumen v, cliente c, articulo a
where c.id_cliente=v.id_cliente and a.id_Articulo=v.id_articulo and
fec_documento between @fecha_ini and @fecha_fin '
if len(@id_linea) =2
begin
set @strsql=@strsql + ' and a.id_linea = "'+@id_empresa+@id_linea +
'" '
end

cuanod o hago que me imprima el valor de la @strsql sale
"select
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_unidades,0)
when "E" then isnull(tot_exportacion_unidades,0)
else isnull(tot_nacional_unidades,0) + isnull(tot_exportacion_unidades,0)
end ) as Unidades,
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_moneda_local,0)
when "E" then isnull(tot_exportacion_moneda_local,0)
else isnull(tot_nacional_moneda_local,0) +
isnull(tot_exportacion_moneda_local,0) end ) as Soles,
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_moneda_base,0)
when "E" then isnull(tot_exportacion_moneda_base,0)
else isnull(tot_nacional_moneda_base,0) +
isnull(tot_exportacion_moneda_base,0) end ) as Dolares
from ventas_resumen v, cliente c, articulo a
where c.id_cliente=v.id_cliente and a.id_Articulo="
ose a que la variable no acpeta todo el valor de la sentencia sql, tengo que
agregar unos 10 ifs mas asi que ceo que pasarlo a una variable es la
solucion pero no funciona alguan otra idea??

Saludos,
Jorge

Preguntas similare

Leer las respuestas

#1 Maximiliano D. A.
25/02/2004 - 22:03 | Informe spam
Hola!! eso se configura de:

Herramientas -- Opciones, luego solapa Resultados y donde dice "Numero
maximo de Catacteres por Columna" pone 8500 por ej y decime como te va si?


Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"Jorge Aguilar" escribió en el mensaje
news:%23nhTZJ%23%
Hola a todos estoy haciendo un store variable asi com sigue

declare @strsqlp varchar(8000),
@id_empresa varchar(2), @id_sucursal varchar(2),
@fecha_ini datetime, @fecha_fin datetime,
@tipo varchar(1),
@id_linea varchar(2), @id_grupo varchar(2), @id_tipo varchar(2),


@id_familia
varchar(2), @id_articulo varchar(2),
@id_tpo_cliente varchar(10), @id_cliente varchar(10), @strsql


varchar(8000)

set @strsql = '
select
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_unidades,0)
when "E" then isnull(tot_exportacion_unidades,0)
else isnull(tot_nacional_unidades,0) + isnull(tot_exportacion_unidades,0)
end ) as Unidades,
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_moneda_local,0)
when "E" then isnull(tot_exportacion_moneda_local,0)
else isnull(tot_nacional_moneda_local,0) +
isnull(tot_exportacion_moneda_local,0) end ) as Soles,
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_moneda_base,0)
when "E" then isnull(tot_exportacion_moneda_base,0)
else isnull(tot_nacional_moneda_base,0) +
isnull(tot_exportacion_moneda_base,0) end ) as Dolares
from ventas_resumen v, cliente c, articulo a
where c.id_cliente=v.id_cliente and a.id_Articulo=v.id_articulo and
fec_documento between @fecha_ini and @fecha_fin '
if len(@id_linea) =2
begin
set @strsql=@strsql + ' and a.id_linea = "'+@id_empresa+@id_linea


+
'" '
end

cuanod o hago que me imprima el valor de la @strsql sale
"select
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_unidades,0)
when "E" then isnull(tot_exportacion_unidades,0)
else isnull(tot_nacional_unidades,0) + isnull(tot_exportacion_unidades,0)
end ) as Unidades,
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_moneda_local,0)
when "E" then isnull(tot_exportacion_moneda_local,0)
else isnull(tot_nacional_moneda_local,0) +
isnull(tot_exportacion_moneda_local,0) end ) as Soles,
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_moneda_base,0)
when "E" then isnull(tot_exportacion_moneda_base,0)
else isnull(tot_nacional_moneda_base,0) +
isnull(tot_exportacion_moneda_base,0) end ) as Dolares
from ventas_resumen v, cliente c, articulo a
where c.id_cliente=v.id_cliente and a.id_Articulo="
ose a que la variable no acpeta todo el valor de la sentencia sql, tengo


que
agregar unos 10 ifs mas asi que ceo que pasarlo a una variable es la
solucion pero no funciona alguan otra idea??

Saludos,
Jorge









Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.593 / Virus Database: 376 - Release Date: 21/02/2004
Respuesta Responder a este mensaje
#2 Jorge Aguilar
25/02/2004 - 22:22 | Informe spam
Esta mejor pero igual me falta espacio en la variable, te envio el query
para ver que se puede hacer.

declare @strsqlp varchar(1000),
@id_empresa varchar(2), @id_sucursal varchar(2),
@fecha_ini datetime, @fecha_fin datetime,
@tipo varchar(1),
@id_linea varchar(2), @id_grupo varchar(2), @id_tipo varchar(2), @id_familia
varchar(2), @id_articulo varchar(2),
@id_tpo_cliente varchar(10), @id_cliente varchar(10), @strsql varchar(1000)

set @id_empresa='01'
set @id_sucursal='01'
set @fecha_ini='01-01-2004' -- FECHA DE INICIO DE LA VENTA
set @fecha_fin='31-01-2004' -- FECHA DE FIN DE LA VENTA
set @tipo='l' -- L=LOCAL; E=EXPORTACION; CUALQUIER OTRO VALOR = LOCAL +
EXPORTACION
set @id_linea='01' -- CODIGO DE LINEA DE ARTICULO SOLO LOS 2 ULTIMOS
DIGITOS, NO INLCUYE A LA EMPRESA
set @id_grupo='01' -- CODIGO DE GRUPO DE ARTICULO
set @id_tipo='01' -- CODIGO DE TIPO DE ARTICULO
set @id_familia='01' -- CODIGO DE FAMILIA DE ARTICULO
set @id_articulo='01' -- CODIGO DE ARTICULO
set @id_cliente='01' -- CODIGO DE CLIENTE
set @id_tpo_cliente ='01' -- CODIGO DE TIPO DE CLIENTE SOLO LOS 2 ULTIMOS
DIGITOS, NO INLCUYE A LA EMPRESA

set @strsql = '
select
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_unidades,0)
when "E" then isnull(tot_exportacion_unidades,0)
else isnull(tot_nacional_unidades,0) + isnull(tot_exportacion_unidades,0)
end ) as Unidades,
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_moneda_local,0)
when "E" then isnull(tot_exportacion_moneda_local,0)
else isnull(tot_nacional_moneda_local,0) +
isnull(tot_exportacion_moneda_local,0) end ) as Soles,
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_moneda_base,0)
when "E" then isnull(tot_exportacion_moneda_base,0)
else isnull(tot_nacional_moneda_base,0) +
isnull(tot_exportacion_moneda_base,0) end ) as Dolares
from ventas_resumen v, cliente c, articulo a
where c.id_cliente=v.id_cliente and a.id_Articulo=v.id_articulo and
fec_documento between @fecha_ini and @fecha_fin '
if len(@id_linea) =2
set @strsql=@strsql + '
and a.id_linea = "'+@id_empresa+@id_linea + '" '
if len(@id_grupo) =2
set @strsql=@strsql + '
and a.id_grupo = "'+@id_grupo + '" '
if len(@id_tipo) =2
set @strsql=@strsql + '
and a.id_tipo = "'+@id_tipo + '" '
if len(@id_familia) =2
set @strsql=@strsql + '
and a.id_familia = "'+@id_familia + '" '
if len(@id_articulo) >1
set @strsql=@strsql + '
and a.id_articulo = "'+@id_empresa+@id_linea + '" '
if len(@id_cliente) >1
set @strsql=@strsql + '
and c.id_cliente = "'+@id_empresa+@id_cliente + '" '
if len(@id_tpo_cliente) =2
set @strsql=@strsql + '
and c.id_tpo_cliente = "'+@id_empresa+@id_tpo_cliente + '" '
select @strsql


el resultado es:
select
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_unidades,0)
when "E" then isnull(tot_exportacion_unidades,0)
else isnull(tot_nacional_unidades,0) + isnull(tot_exportacion_unidades,0)
end ) as Unidades,
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_moneda_local,0)
when "E" then isnull(tot_exportacion_moneda_local,0)
else isnull(tot_nacional_moneda_local,0) +
isnull(tot_exportacion_moneda_local,0) end ) as Soles,
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_moneda_base,0)
when "E" then isnull(tot_exportacion_moneda_base,0)
else isnull(tot_nacional_moneda_base,0) +
isnull(tot_exportacion_moneda_base,0) end ) as Dolares
from ventas_resumen v, cliente c, articulo a
where c.id_cliente=v.id_cliente and a.id_Articulo=v.id_articulo and
fec_documento between @fecha_ini and @fecha_fin
and a.id_linea = "0101"
and a.id_grupo = "01"
and a.id_tipo = "01"
and a.id_familia = "01"
and a.id_articulo = "0101"
and c.




"Maximiliano D. A." <maxi_accotto[arroba]speedy[.]com[.]ar> escribió en el
mensaje news:uBguxM##
Hola!! eso se configura de:

Herramientas -- Opciones, luego solapa Resultados y donde dice "Numero
maximo de Catacteres por Columna" pone 8500 por ej y decime como te va si?


Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"Jorge Aguilar" escribió en el mensaje
news:%23nhTZJ%23%
> Hola a todos estoy haciendo un store variable asi com sigue
>
> declare @strsqlp varchar(8000),
> @id_empresa varchar(2), @id_sucursal varchar(2),
> @fecha_ini datetime, @fecha_fin datetime,
> @tipo varchar(1),
> @id_linea varchar(2), @id_grupo varchar(2), @id_tipo varchar(2),
@id_familia
> varchar(2), @id_articulo varchar(2),
> @id_tpo_cliente varchar(10), @id_cliente varchar(10), @strsql
varchar(8000)
>
> set @strsql = '
> select
> sum( case upper(@tipo)
> when "L" then isnull(tot_nacional_unidades,0)
> when "E" then isnull(tot_exportacion_unidades,0)
> else isnull(tot_nacional_unidades,0) +


isnull(tot_exportacion_unidades,0)
> end ) as Unidades,
> sum( case upper(@tipo)
> when "L" then isnull(tot_nacional_moneda_local,0)
> when "E" then isnull(tot_exportacion_moneda_local,0)
> else isnull(tot_nacional_moneda_local,0) +
> isnull(tot_exportacion_moneda_local,0) end ) as Soles,
> sum( case upper(@tipo)
> when "L" then isnull(tot_nacional_moneda_base,0)
> when "E" then isnull(tot_exportacion_moneda_base,0)
> else isnull(tot_nacional_moneda_base,0) +
> isnull(tot_exportacion_moneda_base,0) end ) as Dolares
> from ventas_resumen v, cliente c, articulo a
> where c.id_cliente=v.id_cliente and a.id_Articulo=v.id_articulo and
> fec_documento between @fecha_ini and @fecha_fin '
> if len(@id_linea) =2
> begin
> set @strsql=@strsql + ' and a.id_linea "'+@id_empresa+@id_linea
+
> '" '
> end
>
> cuanod o hago que me imprima el valor de la @strsql sale
> "select
> sum( case upper(@tipo)
> when "L" then isnull(tot_nacional_unidades,0)
> when "E" then isnull(tot_exportacion_unidades,0)
> else isnull(tot_nacional_unidades,0) +


isnull(tot_exportacion_unidades,0)
> end ) as Unidades,
> sum( case upper(@tipo)
> when "L" then isnull(tot_nacional_moneda_local,0)
> when "E" then isnull(tot_exportacion_moneda_local,0)
> else isnull(tot_nacional_moneda_local,0) +
> isnull(tot_exportacion_moneda_local,0) end ) as Soles,
> sum( case upper(@tipo)
> when "L" then isnull(tot_nacional_moneda_base,0)
> when "E" then isnull(tot_exportacion_moneda_base,0)
> else isnull(tot_nacional_moneda_base,0) +
> isnull(tot_exportacion_moneda_base,0) end ) as Dolares
> from ventas_resumen v, cliente c, articulo a
> where c.id_cliente=v.id_cliente and a.id_Articulo="
> ose a que la variable no acpeta todo el valor de la sentencia sql, tengo
que
> agregar unos 10 ifs mas asi que ceo que pasarlo a una variable es la
> solucion pero no funciona alguan otra idea??
>
> Saludos,
> Jorge
>
>
>
>



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.593 / Virus Database: 376 - Release Date: 21/02/2004


Respuesta Responder a este mensaje
#3 Ygnacio Durán
25/02/2004 - 22:42 | Informe spam
Saludos

Deberias construir la cadena asi:

select @sql1 = 'Select campo1 ... ' - Cerrar en cada linea,
sino se almacenan los espacios al final
+ ' , campoN '
+ ' , campo N1'
,@sql2 = ' , CampoM ' - utilizar varias variables
si es muy largo
, @From = ' From '
, @Where = ' Where campo1 = 10' - etc.

select @sql1, @sql2, @From, @Where

"Jorge Aguilar" escribió en el mensaje
news:uXD2%23V%23%
Esta mejor pero igual me falta espacio en la variable, te envio el query
para ver que se puede hacer.

declare @strsqlp varchar(1000),
@id_empresa varchar(2), @id_sucursal varchar(2),
@fecha_ini datetime, @fecha_fin datetime,
@tipo varchar(1),
@id_linea varchar(2), @id_grupo varchar(2), @id_tipo varchar(2),


@id_familia
varchar(2), @id_articulo varchar(2),
@id_tpo_cliente varchar(10), @id_cliente varchar(10), @strsql


varchar(1000)

set @id_empresa='01'
set @id_sucursal='01'
set @fecha_ini='01-01-2004' -- FECHA DE INICIO DE LA VENTA
set @fecha_fin='31-01-2004' -- FECHA DE FIN DE LA VENTA
set @tipo='l' -- L=LOCAL; E=EXPORTACION; CUALQUIER OTRO VALOR = LOCAL


+
EXPORTACION
set @id_linea='01' -- CODIGO DE LINEA DE ARTICULO SOLO LOS 2 ULTIMOS
DIGITOS, NO INLCUYE A LA EMPRESA
set @id_grupo='01' -- CODIGO DE GRUPO DE ARTICULO
set @id_tipo='01' -- CODIGO DE TIPO DE ARTICULO
set @id_familia='01' -- CODIGO DE FAMILIA DE ARTICULO
set @id_articulo='01' -- CODIGO DE ARTICULO
set @id_cliente='01' -- CODIGO DE CLIENTE
set @id_tpo_cliente ='01' -- CODIGO DE TIPO DE CLIENTE SOLO LOS 2 ULTIMOS
DIGITOS, NO INLCUYE A LA EMPRESA

set @strsql = '
select
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_unidades,0)
when "E" then isnull(tot_exportacion_unidades,0)
else isnull(tot_nacional_unidades,0) + isnull(tot_exportacion_unidades,0)
end ) as Unidades,
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_moneda_local,0)
when "E" then isnull(tot_exportacion_moneda_local,0)
else isnull(tot_nacional_moneda_local,0) +
isnull(tot_exportacion_moneda_local,0) end ) as Soles,
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_moneda_base,0)
when "E" then isnull(tot_exportacion_moneda_base,0)
else isnull(tot_nacional_moneda_base,0) +
isnull(tot_exportacion_moneda_base,0) end ) as Dolares
from ventas_resumen v, cliente c, articulo a
where c.id_cliente=v.id_cliente and a.id_Articulo=v.id_articulo and
fec_documento between @fecha_ini and @fecha_fin '
if len(@id_linea) =2
set @strsql=@strsql + '
and a.id_linea = "'+@id_empresa+@id_linea + '" '
if len(@id_grupo) =2
set @strsql=@strsql + '
and a.id_grupo = "'+@id_grupo + '" '
if len(@id_tipo) =2
set @strsql=@strsql + '
and a.id_tipo = "'+@id_tipo + '" '
if len(@id_familia) =2
set @strsql=@strsql + '
and a.id_familia = "'+@id_familia + '" '
if len(@id_articulo) >1
set @strsql=@strsql + '
and a.id_articulo = "'+@id_empresa+@id_linea + '" '
if len(@id_cliente) >1
set @strsql=@strsql + '
and c.id_cliente = "'+@id_empresa+@id_cliente + '" '
if len(@id_tpo_cliente) =2
set @strsql=@strsql + '
and c.id_tpo_cliente = "'+@id_empresa+@id_tpo_cliente + '" '
select @strsql


el resultado es:
select
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_unidades,0)
when "E" then isnull(tot_exportacion_unidades,0)
else isnull(tot_nacional_unidades,0) + isnull(tot_exportacion_unidades,0)
end ) as Unidades,
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_moneda_local,0)
when "E" then isnull(tot_exportacion_moneda_local,0)
else isnull(tot_nacional_moneda_local,0) +
isnull(tot_exportacion_moneda_local,0) end ) as Soles,
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_moneda_base,0)
when "E" then isnull(tot_exportacion_moneda_base,0)
else isnull(tot_nacional_moneda_base,0) +
isnull(tot_exportacion_moneda_base,0) end ) as Dolares
from ventas_resumen v, cliente c, articulo a
where c.id_cliente=v.id_cliente and a.id_Articulo=v.id_articulo and
fec_documento between @fecha_ini and @fecha_fin
and a.id_linea = "0101"
and a.id_grupo = "01"
and a.id_tipo = "01"
and a.id_familia = "01"
and a.id_articulo = "0101"
and c.




"Maximiliano D. A." <maxi_accotto[arroba]speedy[.]com[.]ar> escribió en el
mensaje news:uBguxM##
> Hola!! eso se configura de:
>
> Herramientas -- Opciones, luego solapa Resultados y donde dice "Numero
> maximo de Catacteres por Columna" pone 8500 por ej y decime como te va


si?
>
>
> Salu2
> Maxi
> Buenos Aires Argentina
> Desarrollador Microsoft 3 Estrellas .NET
> [Maxi_accotto[arroba]speedy[punto]com[punto]ar
> MSN:
>
>
> "Jorge Aguilar" escribió en el mensaje
> news:%23nhTZJ%23%
> > Hola a todos estoy haciendo un store variable asi com sigue
> >
> > declare @strsqlp varchar(8000),
> > @id_empresa varchar(2), @id_sucursal varchar(2),
> > @fecha_ini datetime, @fecha_fin datetime,
> > @tipo varchar(1),
> > @id_linea varchar(2), @id_grupo varchar(2), @id_tipo varchar(2),
> @id_familia
> > varchar(2), @id_articulo varchar(2),
> > @id_tpo_cliente varchar(10), @id_cliente varchar(10), @strsql
> varchar(8000)
> >
> > set @strsql = '
> > select
> > sum( case upper(@tipo)
> > when "L" then isnull(tot_nacional_unidades,0)
> > when "E" then isnull(tot_exportacion_unidades,0)
> > else isnull(tot_nacional_unidades,0) +
isnull(tot_exportacion_unidades,0)
> > end ) as Unidades,
> > sum( case upper(@tipo)
> > when "L" then isnull(tot_nacional_moneda_local,0)
> > when "E" then isnull(tot_exportacion_moneda_local,0)
> > else isnull(tot_nacional_moneda_local,0) +
> > isnull(tot_exportacion_moneda_local,0) end ) as Soles,
> > sum( case upper(@tipo)
> > when "L" then isnull(tot_nacional_moneda_base,0)
> > when "E" then isnull(tot_exportacion_moneda_base,0)
> > else isnull(tot_nacional_moneda_base,0) +
> > isnull(tot_exportacion_moneda_base,0) end ) as Dolares
> > from ventas_resumen v, cliente c, articulo a
> > where c.id_cliente=v.id_cliente and a.id_Articulo=v.id_articulo and
> > fec_documento between @fecha_ini and @fecha_fin '
> > if len(@id_linea) =2
> > begin
> > set @strsql=@strsql + ' and a.id_linea > "'+@id_empresa+@id_linea
> +
> > '" '
> > end
> >
> > cuanod o hago que me imprima el valor de la @strsql sale
> > "select
> > sum( case upper(@tipo)
> > when "L" then isnull(tot_nacional_unidades,0)
> > when "E" then isnull(tot_exportacion_unidades,0)
> > else isnull(tot_nacional_unidades,0) +
isnull(tot_exportacion_unidades,0)
> > end ) as Unidades,
> > sum( case upper(@tipo)
> > when "L" then isnull(tot_nacional_moneda_local,0)
> > when "E" then isnull(tot_exportacion_moneda_local,0)
> > else isnull(tot_nacional_moneda_local,0) +
> > isnull(tot_exportacion_moneda_local,0) end ) as Soles,
> > sum( case upper(@tipo)
> > when "L" then isnull(tot_nacional_moneda_base,0)
> > when "E" then isnull(tot_exportacion_moneda_base,0)
> > else isnull(tot_nacional_moneda_base,0) +
> > isnull(tot_exportacion_moneda_base,0) end ) as Dolares
> > from ventas_resumen v, cliente c, articulo a
> > where c.id_cliente=v.id_cliente and a.id_Articulo="
> > ose a que la variable no acpeta todo el valor de la sentencia sql,


tengo
> que
> > agregar unos 10 ifs mas asi que ceo que pasarlo a una variable es la
> > solucion pero no funciona alguan otra idea??
> >
> > Saludos,
> > Jorge
> >
> >
> >
> >
>
>
>
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.593 / Virus Database: 376 - Release Date: 21/02/2004
>
>


Respuesta Responder a este mensaje
#4 Maximiliano Damian Accotto
25/02/2004 - 23:18 | Informe spam
Hola!! que raro!! deberias de verla toda cheee, estas que valor le pusiste
ahi donde te dije? quizas le debas poner uno mas grande, claro ademas sal y
vuelve a entrar a el QA si?



Salu2 enormes

Maximiliano Damian Accotto

Fundicion San Cayetano S.A.
Gerente de IT
Buenos Aires - Argentina
-
Desarrollador 3 estrellas
http://www.microsoft.com/spanish/ms...efault.asp
-
(maxi_accotto[arroba]speedy.com.ar)
MSN:
-

"Jorge Aguilar" escribió en el mensaje
news:uXD2%23V%23%
Esta mejor pero igual me falta espacio en la variable, te envio el query
para ver que se puede hacer.

declare @strsqlp varchar(1000),
@id_empresa varchar(2), @id_sucursal varchar(2),
@fecha_ini datetime, @fecha_fin datetime,
@tipo varchar(1),
@id_linea varchar(2), @id_grupo varchar(2), @id_tipo varchar(2),


@id_familia
varchar(2), @id_articulo varchar(2),
@id_tpo_cliente varchar(10), @id_cliente varchar(10), @strsql


varchar(1000)

set @id_empresa='01'
set @id_sucursal='01'
set @fecha_ini='01-01-2004' -- FECHA DE INICIO DE LA VENTA
set @fecha_fin='31-01-2004' -- FECHA DE FIN DE LA VENTA
set @tipo='l' -- L=LOCAL; E=EXPORTACION; CUALQUIER OTRO VALOR = LOCAL


+
EXPORTACION
set @id_linea='01' -- CODIGO DE LINEA DE ARTICULO SOLO LOS 2 ULTIMOS
DIGITOS, NO INLCUYE A LA EMPRESA
set @id_grupo='01' -- CODIGO DE GRUPO DE ARTICULO
set @id_tipo='01' -- CODIGO DE TIPO DE ARTICULO
set @id_familia='01' -- CODIGO DE FAMILIA DE ARTICULO
set @id_articulo='01' -- CODIGO DE ARTICULO
set @id_cliente='01' -- CODIGO DE CLIENTE
set @id_tpo_cliente ='01' -- CODIGO DE TIPO DE CLIENTE SOLO LOS 2 ULTIMOS
DIGITOS, NO INLCUYE A LA EMPRESA

set @strsql = '
select
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_unidades,0)
when "E" then isnull(tot_exportacion_unidades,0)
else isnull(tot_nacional_unidades,0) + isnull(tot_exportacion_unidades,0)
end ) as Unidades,
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_moneda_local,0)
when "E" then isnull(tot_exportacion_moneda_local,0)
else isnull(tot_nacional_moneda_local,0) +
isnull(tot_exportacion_moneda_local,0) end ) as Soles,
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_moneda_base,0)
when "E" then isnull(tot_exportacion_moneda_base,0)
else isnull(tot_nacional_moneda_base,0) +
isnull(tot_exportacion_moneda_base,0) end ) as Dolares
from ventas_resumen v, cliente c, articulo a
where c.id_cliente=v.id_cliente and a.id_Articulo=v.id_articulo and
fec_documento between @fecha_ini and @fecha_fin '
if len(@id_linea) =2
set @strsql=@strsql + '
and a.id_linea = "'+@id_empresa+@id_linea + '" '
if len(@id_grupo) =2
set @strsql=@strsql + '
and a.id_grupo = "'+@id_grupo + '" '
if len(@id_tipo) =2
set @strsql=@strsql + '
and a.id_tipo = "'+@id_tipo + '" '
if len(@id_familia) =2
set @strsql=@strsql + '
and a.id_familia = "'+@id_familia + '" '
if len(@id_articulo) >1
set @strsql=@strsql + '
and a.id_articulo = "'+@id_empresa+@id_linea + '" '
if len(@id_cliente) >1
set @strsql=@strsql + '
and c.id_cliente = "'+@id_empresa+@id_cliente + '" '
if len(@id_tpo_cliente) =2
set @strsql=@strsql + '
and c.id_tpo_cliente = "'+@id_empresa+@id_tpo_cliente + '" '
select @strsql


el resultado es:
select
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_unidades,0)
when "E" then isnull(tot_exportacion_unidades,0)
else isnull(tot_nacional_unidades,0) + isnull(tot_exportacion_unidades,0)
end ) as Unidades,
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_moneda_local,0)
when "E" then isnull(tot_exportacion_moneda_local,0)
else isnull(tot_nacional_moneda_local,0) +
isnull(tot_exportacion_moneda_local,0) end ) as Soles,
sum( case upper(@tipo)
when "L" then isnull(tot_nacional_moneda_base,0)
when "E" then isnull(tot_exportacion_moneda_base,0)
else isnull(tot_nacional_moneda_base,0) +
isnull(tot_exportacion_moneda_base,0) end ) as Dolares
from ventas_resumen v, cliente c, articulo a
where c.id_cliente=v.id_cliente and a.id_Articulo=v.id_articulo and
fec_documento between @fecha_ini and @fecha_fin
and a.id_linea = "0101"
and a.id_grupo = "01"
and a.id_tipo = "01"
and a.id_familia = "01"
and a.id_articulo = "0101"
and c.




"Maximiliano D. A." <maxi_accotto[arroba]speedy[.]com[.]ar> escribió en el
mensaje news:uBguxM##
> Hola!! eso se configura de:
>
> Herramientas -- Opciones, luego solapa Resultados y donde dice "Numero
> maximo de Catacteres por Columna" pone 8500 por ej y decime como te va


si?
>
>
> Salu2
> Maxi
> Buenos Aires Argentina
> Desarrollador Microsoft 3 Estrellas .NET
> [Maxi_accotto[arroba]speedy[punto]com[punto]ar
> MSN:
>
>
> "Jorge Aguilar" escribió en el mensaje
> news:%23nhTZJ%23%
> > Hola a todos estoy haciendo un store variable asi com sigue
> >
> > declare @strsqlp varchar(8000),
> > @id_empresa varchar(2), @id_sucursal varchar(2),
> > @fecha_ini datetime, @fecha_fin datetime,
> > @tipo varchar(1),
> > @id_linea varchar(2), @id_grupo varchar(2), @id_tipo varchar(2),
> @id_familia
> > varchar(2), @id_articulo varchar(2),
> > @id_tpo_cliente varchar(10), @id_cliente varchar(10), @strsql
> varchar(8000)
> >
> > set @strsql = '
> > select
> > sum( case upper(@tipo)
> > when "L" then isnull(tot_nacional_unidades,0)
> > when "E" then isnull(tot_exportacion_unidades,0)
> > else isnull(tot_nacional_unidades,0) +
isnull(tot_exportacion_unidades,0)
> > end ) as Unidades,
> > sum( case upper(@tipo)
> > when "L" then isnull(tot_nacional_moneda_local,0)
> > when "E" then isnull(tot_exportacion_moneda_local,0)
> > else isnull(tot_nacional_moneda_local,0) +
> > isnull(tot_exportacion_moneda_local,0) end ) as Soles,
> > sum( case upper(@tipo)
> > when "L" then isnull(tot_nacional_moneda_base,0)
> > when "E" then isnull(tot_exportacion_moneda_base,0)
> > else isnull(tot_nacional_moneda_base,0) +
> > isnull(tot_exportacion_moneda_base,0) end ) as Dolares
> > from ventas_resumen v, cliente c, articulo a
> > where c.id_cliente=v.id_cliente and a.id_Articulo=v.id_articulo and
> > fec_documento between @fecha_ini and @fecha_fin '
> > if len(@id_linea) =2
> > begin
> > set @strsql=@strsql + ' and a.id_linea > "'+@id_empresa+@id_linea
> +
> > '" '
> > end
> >
> > cuanod o hago que me imprima el valor de la @strsql sale
> > "select
> > sum( case upper(@tipo)
> > when "L" then isnull(tot_nacional_unidades,0)
> > when "E" then isnull(tot_exportacion_unidades,0)
> > else isnull(tot_nacional_unidades,0) +
isnull(tot_exportacion_unidades,0)
> > end ) as Unidades,
> > sum( case upper(@tipo)
> > when "L" then isnull(tot_nacional_moneda_local,0)
> > when "E" then isnull(tot_exportacion_moneda_local,0)
> > else isnull(tot_nacional_moneda_local,0) +
> > isnull(tot_exportacion_moneda_local,0) end ) as Soles,
> > sum( case upper(@tipo)
> > when "L" then isnull(tot_nacional_moneda_base,0)
> > when "E" then isnull(tot_exportacion_moneda_base,0)
> > else isnull(tot_nacional_moneda_base,0) +
> > isnull(tot_exportacion_moneda_base,0) end ) as Dolares
> > from ventas_resumen v, cliente c, articulo a
> > where c.id_cliente=v.id_cliente and a.id_Articulo="
> > ose a que la variable no acpeta todo el valor de la sentencia sql,


tengo
> que
> > agregar unos 10 ifs mas asi que ceo que pasarlo a una variable es la
> > solucion pero no funciona alguan otra idea??
> >
> > Saludos,
> > Jorge
> >
> >
> >
> >
>
>
>
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.593 / Virus Database: 376 - Release Date: 21/02/2004
>
>


Respuesta Responder a este mensaje
#5 Jorge Aguilar
25/02/2004 - 23:52 | Informe spam
Me funciono pero por partes
@strselect+@strfrom+@strwhere +@strgroup

gracias

"Maximiliano Damian Accotto" escribió
en el mensaje news:uPSfu4##
Hola!! que raro!! deberias de verla toda cheee, estas que valor le pusiste
ahi donde te dije? quizas le debas poner uno mas grande, claro ademas sal


y
vuelve a entrar a el QA si?



Salu2 enormes

Maximiliano Damian Accotto

Fundicion San Cayetano S.A.
Gerente de IT
Buenos Aires - Argentina
-
Desarrollador 3 estrellas
http://www.microsoft.com/spanish/ms...efault.asp
-
(maxi_accotto[arroba]speedy.com.ar)
MSN:
-

"Jorge Aguilar" escribió en el mensaje
news:uXD2%23V%23%
> Esta mejor pero igual me falta espacio en la variable, te envio el query
> para ver que se puede hacer.
>
> declare @strsqlp varchar(1000),
> @id_empresa varchar(2), @id_sucursal varchar(2),
> @fecha_ini datetime, @fecha_fin datetime,
> @tipo varchar(1),
> @id_linea varchar(2), @id_grupo varchar(2), @id_tipo varchar(2),
@id_familia
> varchar(2), @id_articulo varchar(2),
> @id_tpo_cliente varchar(10), @id_cliente varchar(10), @strsql
varchar(1000)
>
> set @id_empresa='01'
> set @id_sucursal='01'
> set @fecha_ini='01-01-2004' -- FECHA DE INICIO DE LA VENTA
> set @fecha_fin='31-01-2004' -- FECHA DE FIN DE LA VENTA
> set @tipo='l' -- L=LOCAL; E=EXPORTACION; CUALQUIER OTRO VALOR LOCAL
+
> EXPORTACION
> set @id_linea='01' -- CODIGO DE LINEA DE ARTICULO SOLO LOS 2 ULTIMOS
> DIGITOS, NO INLCUYE A LA EMPRESA
> set @id_grupo='01' -- CODIGO DE GRUPO DE ARTICULO
> set @id_tipo='01' -- CODIGO DE TIPO DE ARTICULO
> set @id_familia='01' -- CODIGO DE FAMILIA DE ARTICULO
> set @id_articulo='01' -- CODIGO DE ARTICULO
> set @id_cliente='01' -- CODIGO DE CLIENTE
> set @id_tpo_cliente ='01' -- CODIGO DE TIPO DE CLIENTE SOLO LOS 2


ULTIMOS
> DIGITOS, NO INLCUYE A LA EMPRESA
>
> set @strsql = '
> select
> sum( case upper(@tipo)
> when "L" then isnull(tot_nacional_unidades,0)
> when "E" then isnull(tot_exportacion_unidades,0)
> else isnull(tot_nacional_unidades,0) +


isnull(tot_exportacion_unidades,0)
> end ) as Unidades,
> sum( case upper(@tipo)
> when "L" then isnull(tot_nacional_moneda_local,0)
> when "E" then isnull(tot_exportacion_moneda_local,0)
> else isnull(tot_nacional_moneda_local,0) +
> isnull(tot_exportacion_moneda_local,0) end ) as Soles,
> sum( case upper(@tipo)
> when "L" then isnull(tot_nacional_moneda_base,0)
> when "E" then isnull(tot_exportacion_moneda_base,0)
> else isnull(tot_nacional_moneda_base,0) +
> isnull(tot_exportacion_moneda_base,0) end ) as Dolares
> from ventas_resumen v, cliente c, articulo a
> where c.id_cliente=v.id_cliente and a.id_Articulo=v.id_articulo and
> fec_documento between @fecha_ini and @fecha_fin '
> if len(@id_linea) =2
> set @strsql=@strsql + '
> and a.id_linea = "'+@id_empresa+@id_linea + '" '
> if len(@id_grupo) =2
> set @strsql=@strsql + '
> and a.id_grupo = "'+@id_grupo + '" '
> if len(@id_tipo) =2
> set @strsql=@strsql + '
> and a.id_tipo = "'+@id_tipo + '" '
> if len(@id_familia) =2
> set @strsql=@strsql + '
> and a.id_familia = "'+@id_familia + '" '
> if len(@id_articulo) >1
> set @strsql=@strsql + '
> and a.id_articulo = "'+@id_empresa+@id_linea + '" '
> if len(@id_cliente) >1
> set @strsql=@strsql + '
> and c.id_cliente = "'+@id_empresa+@id_cliente + '" '
> if len(@id_tpo_cliente) =2
> set @strsql=@strsql + '
> and c.id_tpo_cliente = "'+@id_empresa+@id_tpo_cliente + '" '
> select @strsql
>
>
> el resultado es:
> select
> sum( case upper(@tipo)
> when "L" then isnull(tot_nacional_unidades,0)
> when "E" then isnull(tot_exportacion_unidades,0)
> else isnull(tot_nacional_unidades,0) +


isnull(tot_exportacion_unidades,0)
> end ) as Unidades,
> sum( case upper(@tipo)
> when "L" then isnull(tot_nacional_moneda_local,0)
> when "E" then isnull(tot_exportacion_moneda_local,0)
> else isnull(tot_nacional_moneda_local,0) +
> isnull(tot_exportacion_moneda_local,0) end ) as Soles,
> sum( case upper(@tipo)
> when "L" then isnull(tot_nacional_moneda_base,0)
> when "E" then isnull(tot_exportacion_moneda_base,0)
> else isnull(tot_nacional_moneda_base,0) +
> isnull(tot_exportacion_moneda_base,0) end ) as Dolares
> from ventas_resumen v, cliente c, articulo a
> where c.id_cliente=v.id_cliente and a.id_Articulo=v.id_articulo and
> fec_documento between @fecha_ini and @fecha_fin
> and a.id_linea = "0101"
> and a.id_grupo = "01"
> and a.id_tipo = "01"
> and a.id_familia = "01"
> and a.id_articulo = "0101"
> and c.
>
>
>
>
> "Maximiliano D. A." <maxi_accotto[arroba]speedy[.]com[.]ar> escribió en


el
> mensaje news:uBguxM##
> > Hola!! eso se configura de:
> >
> > Herramientas -- Opciones, luego solapa Resultados y donde dice "Numero
> > maximo de Catacteres por Columna" pone 8500 por ej y decime como te va
si?
> >
> >
> > Salu2
> > Maxi
> > Buenos Aires Argentina
> > Desarrollador Microsoft 3 Estrellas .NET
> > [Maxi_accotto[arroba]speedy[punto]com[punto]ar
> > MSN:
> >
> >
> > "Jorge Aguilar" escribió en el mensaje
> > news:%23nhTZJ%23%
> > > Hola a todos estoy haciendo un store variable asi com sigue
> > >
> > > declare @strsqlp varchar(8000),
> > > @id_empresa varchar(2), @id_sucursal varchar(2),
> > > @fecha_ini datetime, @fecha_fin datetime,
> > > @tipo varchar(1),
> > > @id_linea varchar(2), @id_grupo varchar(2), @id_tipo varchar(2),
> > @id_familia
> > > varchar(2), @id_articulo varchar(2),
> > > @id_tpo_cliente varchar(10), @id_cliente varchar(10), @strsql
> > varchar(8000)
> > >
> > > set @strsql = '
> > > select
> > > sum( case upper(@tipo)
> > > when "L" then isnull(tot_nacional_unidades,0)
> > > when "E" then isnull(tot_exportacion_unidades,0)
> > > else isnull(tot_nacional_unidades,0) +
> isnull(tot_exportacion_unidades,0)
> > > end ) as Unidades,
> > > sum( case upper(@tipo)
> > > when "L" then isnull(tot_nacional_moneda_local,0)
> > > when "E" then isnull(tot_exportacion_moneda_local,0)
> > > else isnull(tot_nacional_moneda_local,0) +
> > > isnull(tot_exportacion_moneda_local,0) end ) as Soles,
> > > sum( case upper(@tipo)
> > > when "L" then isnull(tot_nacional_moneda_base,0)
> > > when "E" then isnull(tot_exportacion_moneda_base,0)
> > > else isnull(tot_nacional_moneda_base,0) +
> > > isnull(tot_exportacion_moneda_base,0) end ) as Dolares
> > > from ventas_resumen v, cliente c, articulo a
> > > where c.id_cliente=v.id_cliente and a.id_Articulo=v.id_articulo and
> > > fec_documento between @fecha_ini and @fecha_fin '
> > > if len(@id_linea) =2
> > > begin
> > > set @strsql=@strsql + ' and a.id_linea > > "'+@id_empresa+@id_linea
> > +
> > > '" '
> > > end
> > >
> > > cuanod o hago que me imprima el valor de la @strsql sale
> > > "select
> > > sum( case upper(@tipo)
> > > when "L" then isnull(tot_nacional_unidades,0)
> > > when "E" then isnull(tot_exportacion_unidades,0)
> > > else isnull(tot_nacional_unidades,0) +
> isnull(tot_exportacion_unidades,0)
> > > end ) as Unidades,
> > > sum( case upper(@tipo)
> > > when "L" then isnull(tot_nacional_moneda_local,0)
> > > when "E" then isnull(tot_exportacion_moneda_local,0)
> > > else isnull(tot_nacional_moneda_local,0) +
> > > isnull(tot_exportacion_moneda_local,0) end ) as Soles,
> > > sum( case upper(@tipo)
> > > when "L" then isnull(tot_nacional_moneda_base,0)
> > > when "E" then isnull(tot_exportacion_moneda_base,0)
> > > else isnull(tot_nacional_moneda_base,0) +
> > > isnull(tot_exportacion_moneda_base,0) end ) as Dolares
> > > from ventas_resumen v, cliente c, articulo a
> > > where c.id_cliente=v.id_cliente and a.id_Articulo="
> > > ose a que la variable no acpeta todo el valor de la sentencia sql,
tengo
> > que
> > > agregar unos 10 ifs mas asi que ceo que pasarlo a una variable es la
> > > solucion pero no funciona alguan otra idea??
> > >
> > > Saludos,
> > > Jorge
> > >
> > >
> > >
> > >
> >
> >
> >
> > Outgoing mail is certified Virus Free.
> > Checked by AVG anti-virus system (http://www.grisoft.com).
> > Version: 6.0.593 / Virus Database: 376 - Release Date: 21/02/2004
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida