Ayuda con SQL...

12/02/2004 - 21:16 por mgs | Informe spam
Hola Grupo.. Tengo un pequeño problema. Tengo un select en el cual concateno
una cadena de caracteres, pero una de las cadenas trae el valor 'nulo' (no
porque el campo sea null, sino que esa es la descripción), todos los demas
campos son char (compania, articulo, bodega). Al ejecurtarlo me da el
siguiente
Error: Syntax error converting the varchar value '0111000051nulo' to a
column of data type int.



Qué puedo hacer en este caso? Gracias...


Sentencia SQL:

SELECT T1.COD_ART, T1.DES_ART, T1.COD_FABRIC,
T3.COD_BODEGA,T3.DES_BODEGA,T2.COD_UBI_ART,T4.COD_AGRUP,T4.DES_AGRUP,T2.LOT_
SER,T2.CAN_FISICA
FROM PST_MAEST_ARTIC T1, PST_EXIST_FISIC T2, PST_CATAL_BODEG T3,
PST_CATAL_AGRUP T4

WHERE T1.COD_COMPAN = T2.COD_COMPAN

AND T1.COD_ART = T2.COD_ART

AND T2.COD_COMPAN = T3.COD_COMPAN

AND T2.COD_BODEGA = T3.COD_BODEGA

AND T1.COD_COMPAN = T4.COD_COMPAN

AND T1.COD_AGRUP = T4.COD_AGRUP

AND T1.COD_AGRUP = T4.COD_AGRUP

AND T1.COD_COMPAN = '01'

AND (T1.COD_COMPAN + T1.COD_ART + T3.COD_BODEGA + T2.COD_UBI_ART) NOT
IN (SELECT COD_COMPAN + COD_ART + COD_BODEGA + COD_UBI_ART

FROM PST_DET_TOMA

WHERE COD_COMPAN ='01'

AND NUM_TOMA ='2')

Preguntas similare

Leer las respuestas

#1 Maximiliano D. A.
12/02/2004 - 21:51 | Informe spam
podrias usar CASE y decir si es 'NULO' pongo 0 sino el campo

seria algo asi como

Case campo When 'nulo' then 0 else campo end

Salu2

Maximiliano Damian Accotto


"mgs" escribió en el mensaje
news:
Hola Grupo.. Tengo un pequeño problema. Tengo un select en el cual


concateno
una cadena de caracteres, pero una de las cadenas trae el valor 'nulo' (no
porque el campo sea null, sino que esa es la descripción), todos los demas
campos son char (compania, articulo, bodega). Al ejecurtarlo me da el
siguiente
Error: Syntax error converting the varchar value '0111000051nulo' to a
column of data type int.



Qué puedo hacer en este caso? Gracias...


Sentencia SQL:

SELECT T1.COD_ART, T1.DES_ART, T1.COD_FABRIC,



T3.COD_BODEGA,T3.DES_BODEGA,T2.COD_UBI_ART,T4.COD_AGRUP,T4.DES_AGRUP,T2.LOT_
SER,T2.CAN_FISICA
FROM PST_MAEST_ARTIC T1, PST_EXIST_FISIC T2, PST_CATAL_BODEG T3,
PST_CATAL_AGRUP T4

WHERE T1.COD_COMPAN = T2.COD_COMPAN

AND T1.COD_ART = T2.COD_ART

AND T2.COD_COMPAN = T3.COD_COMPAN

AND T2.COD_BODEGA = T3.COD_BODEGA

AND T1.COD_COMPAN = T4.COD_COMPAN

AND T1.COD_AGRUP = T4.COD_AGRUP

AND T1.COD_AGRUP = T4.COD_AGRUP

AND T1.COD_COMPAN = '01'

AND (T1.COD_COMPAN + T1.COD_ART + T3.COD_BODEGA + T2.COD_UBI_ART) NOT
IN (SELECT COD_COMPAN + COD_ART + COD_BODEGA + COD_UBI_ART

FROM PST_DET_TOMA

WHERE COD_COMPAN ='01'

AND NUM_TOMA ='2')






Respuesta Responder a este mensaje
#2 Norman A. Armas
12/02/2004 - 22:42 | Informe spam
Cuando concatenas cadenas de caracteres debes de convertir el campo que no
es de caracteres a caracteres usando cast o convert

Saludos,

Norman



"mgs" wrote in message
news:
Hola Grupo.. Tengo un pequeño problema. Tengo un select en el cual


concateno
una cadena de caracteres, pero una de las cadenas trae el valor 'nulo' (no
porque el campo sea null, sino que esa es la descripción), todos los demas
campos son char (compania, articulo, bodega). Al ejecurtarlo me da el
siguiente
Error: Syntax error converting the varchar value '0111000051nulo' to a
column of data type int.



Qué puedo hacer en este caso? Gracias...


Sentencia SQL:

SELECT T1.COD_ART, T1.DES_ART, T1.COD_FABRIC,



T3.COD_BODEGA,T3.DES_BODEGA,T2.COD_UBI_ART,T4.COD_AGRUP,T4.DES_AGRUP,T2.LOT_
SER,T2.CAN_FISICA
FROM PST_MAEST_ARTIC T1, PST_EXIST_FISIC T2, PST_CATAL_BODEG T3,
PST_CATAL_AGRUP T4

WHERE T1.COD_COMPAN = T2.COD_COMPAN

AND T1.COD_ART = T2.COD_ART

AND T2.COD_COMPAN = T3.COD_COMPAN

AND T2.COD_BODEGA = T3.COD_BODEGA

AND T1.COD_COMPAN = T4.COD_COMPAN

AND T1.COD_AGRUP = T4.COD_AGRUP

AND T1.COD_AGRUP = T4.COD_AGRUP

AND T1.COD_COMPAN = '01'

AND (T1.COD_COMPAN + T1.COD_ART + T3.COD_BODEGA + T2.COD_UBI_ART) NOT
IN (SELECT COD_COMPAN + COD_ART + COD_BODEGA + COD_UBI_ART

FROM PST_DET_TOMA

WHERE COD_COMPAN ='01'

AND NUM_TOMA ='2')






Respuesta Responder a este mensaje
#3 Maximiliano Damian Accotto
12/02/2004 - 23:14 | Informe spam
si pero lo que entendi que el campo no es null sino que tiene una cadena
llamada nulo que no es lo mismo ;), de ser NULL es mejor tu opcion quizas.
:D


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:
"Fernando España" escribió en el mensaje
news:
quiza mas sencillo con campoa+ isnull(campob,' ')+campoc

Fernando España


"Maximiliano D. A." <maxi_accotto[arroba]speedy[.]com[.]ar> wrote in


message
news:
> podrias usar CASE y decir si es 'NULO' pongo 0 sino el campo
>
> seria algo asi como
>
> Case campo When 'nulo' then 0 else campo end
>
> Salu2
>
> Maximiliano Damian Accotto
>
>
> "mgs" escribió en el mensaje
> news:
> > Hola Grupo.. Tengo un pequeño problema. Tengo un select en el cual
> concateno
> > una cadena de caracteres, pero una de las cadenas trae el valor 'nulo'
(no
> > porque el campo sea null, sino que esa es la descripción), todos los
demas
> > campos son char (compania, articulo, bodega). Al ejecurtarlo me da el
> > siguiente
> > Error: Syntax error converting the varchar value '0111000051nulo' to a
> > column of data type int.
> >
> >
> >
> > Qué puedo hacer en este caso? Gracias...
> >
> >
> > Sentencia SQL:
> >
> > SELECT T1.COD_ART, T1.DES_ART, T1.COD_FABRIC,
> >
>



T3.COD_BODEGA,T3.DES_BODEGA,T2.COD_UBI_ART,T4.COD_AGRUP,T4.DES_AGRUP,T2.LOT_
> > SER,T2.CAN_FISICA
> > FROM PST_MAEST_ARTIC T1, PST_EXIST_FISIC T2, PST_CATAL_BODEG T3,
> > PST_CATAL_AGRUP T4
> >
> > WHERE T1.COD_COMPAN = T2.COD_COMPAN
> >
> > AND T1.COD_ART = T2.COD_ART
> >
> > AND T2.COD_COMPAN = T3.COD_COMPAN
> >
> > AND T2.COD_BODEGA = T3.COD_BODEGA
> >
> > AND T1.COD_COMPAN = T4.COD_COMPAN
> >
> > AND T1.COD_AGRUP = T4.COD_AGRUP
> >
> > AND T1.COD_AGRUP = T4.COD_AGRUP
> >
> > AND T1.COD_COMPAN = '01'
> >
> > AND (T1.COD_COMPAN + T1.COD_ART + T3.COD_BODEGA + T2.COD_UBI_ART)
NOT
> > IN (SELECT COD_COMPAN + COD_ART + COD_BODEGA + COD_UBI_ART
> >
> > FROM PST_DET_TOMA
> >
> > WHERE COD_COMPAN ='01'
> >
> > AND NUM_TOMA ='2')
> >
> >
> >
> >
> >
> >
>
>


Respuesta Responder a este mensaje
#4 Fernando España
12/02/2004 - 23:48 | Informe spam
quiza mas sencillo con campoa+ isnull(campob,' ')+campoc

Fernando España


"Maximiliano D. A." <maxi_accotto[arroba]speedy[.]com[.]ar> wrote in message
news:
podrias usar CASE y decir si es 'NULO' pongo 0 sino el campo

seria algo asi como

Case campo When 'nulo' then 0 else campo end

Salu2

Maximiliano Damian Accotto


"mgs" escribió en el mensaje
news:
> Hola Grupo.. Tengo un pequeño problema. Tengo un select en el cual
concateno
> una cadena de caracteres, pero una de las cadenas trae el valor 'nulo'


(no
> porque el campo sea null, sino que esa es la descripción), todos los


demas
> campos son char (compania, articulo, bodega). Al ejecurtarlo me da el
> siguiente
> Error: Syntax error converting the varchar value '0111000051nulo' to a
> column of data type int.
>
>
>
> Qué puedo hacer en este caso? Gracias...
>
>
> Sentencia SQL:
>
> SELECT T1.COD_ART, T1.DES_ART, T1.COD_FABRIC,
>



T3.COD_BODEGA,T3.DES_BODEGA,T2.COD_UBI_ART,T4.COD_AGRUP,T4.DES_AGRUP,T2.LOT_
> SER,T2.CAN_FISICA
> FROM PST_MAEST_ARTIC T1, PST_EXIST_FISIC T2, PST_CATAL_BODEG T3,
> PST_CATAL_AGRUP T4
>
> WHERE T1.COD_COMPAN = T2.COD_COMPAN
>
> AND T1.COD_ART = T2.COD_ART
>
> AND T2.COD_COMPAN = T3.COD_COMPAN
>
> AND T2.COD_BODEGA = T3.COD_BODEGA
>
> AND T1.COD_COMPAN = T4.COD_COMPAN
>
> AND T1.COD_AGRUP = T4.COD_AGRUP
>
> AND T1.COD_AGRUP = T4.COD_AGRUP
>
> AND T1.COD_COMPAN = '01'
>
> AND (T1.COD_COMPAN + T1.COD_ART + T3.COD_BODEGA + T2.COD_UBI_ART)


NOT
> IN (SELECT COD_COMPAN + COD_ART + COD_BODEGA + COD_UBI_ART
>
> FROM PST_DET_TOMA
>
> WHERE COD_COMPAN ='01'
>
> AND NUM_TOMA ='2')
>
>
>
>
>
>


Respuesta Responder a este mensaje
#5 ulises
13/02/2004 - 00:59 | Informe spam
No entiendo si tu problema es el manejo del campo con
valor "nulo" o eliminar el error de conversión o ambos, en
todo caso :

1. por el error que te da, uno de los campos que tratas de
concatenar con "+" debe ser entero es por eso que trata de
hacer la suma y te da el error que muestras, de eso te
puedes dar cuenta en el siguiente script :

create table #tempo ( campo1 char(1), campo2 int )
go
insert into #tempo values ( '1','2')
insert into #tempo values ( '1','4')
insert into #tempo values ( 'A','6')
go
select campo1 + campo2 from #tempo

dará el siguiente resultado :
3
5
Server: Msg 245, Level 16, State 1, Line 1
Syntax error converting the varchar value 'A' to a column
of data type int.

2. Si deseas cambiar el valor "nulo" por otro valor debes
usar el CASE, pero ojo como te comenté en el punto 1., al
haber un campo entero va a tratar de hacer una suma y no
una concatenación.

Saludos,
Ulises

Hola Grupo.. Tengo un pequeño problema. Tengo un select


en el cual concateno
una cadena de caracteres, pero una de las cadenas trae el


valor 'nulo' (no
porque el campo sea null, sino que esa es la


descripción), todos los demas
campos son char (compania, articulo, bodega). Al


ejecurtarlo me da el
siguiente
Error: Syntax error converting the varchar


value '0111000051nulo' to a
column of data type int.



Qué puedo hacer en este caso? Gracias...


Sentencia SQL:

SELECT T1.COD_ART, T1.DES_ART, T1.COD_FABRIC,
T3.COD_BODEGA,T3.DES_BODEGA,T2.COD_UBI_ART,T4.COD_AGRUP,T4


.DES_AGRUP,T2.LOT_
SER,T2.CAN_FISICA
FROM PST_MAEST_ARTIC T1, PST_EXIST_FISIC T2,


PST_CATAL_BODEG T3,
PST_CATAL_AGRUP T4

WHERE T1.COD_COMPAN = T2.COD_COMPAN

AND T1.COD_ART = T2.COD_ART

AND T2.COD_COMPAN = T3.COD_COMPAN

AND T2.COD_BODEGA = T3.COD_BODEGA

AND T1.COD_COMPAN = T4.COD_COMPAN

AND T1.COD_AGRUP = T4.COD_AGRUP

AND T1.COD_AGRUP = T4.COD_AGRUP

AND T1.COD_COMPAN = '01'

AND (T1.COD_COMPAN + T1.COD_ART + T3.COD_BODEGA +


T2.COD_UBI_ART) NOT
IN (SELECT COD_COMPAN + COD_ART + COD_BODEGA + COD_UBI_ART

FROM PST_DET_TOMA

WHERE COD_COMPAN ='01'

AND NUM_TOMA ='2')






.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida