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:
Mostrar la cita
concateno
Mostrar la cita
T3.COD_BODEGA,T3.DES_BODEGA,T2.COD_UBI_ART,T4.COD_AGRUP,T4.DES_AGRUP,T2.LOT_
Mostrar la cita
#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:
Mostrar la cita
concateno
Mostrar la cita
T3.COD_BODEGA,T3.DES_BODEGA,T2.COD_UBI_ART,T4.COD_AGRUP,T4.DES_AGRUP,T2.LOT_
Mostrar la cita
#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:
Mostrar la cita
message
Mostrar la cita
T3.COD_BODEGA,T3.DES_BODEGA,T2.COD_UBI_ART,T4.COD_AGRUP,T4.DES_AGRUP,T2.LOT_
Mostrar la cita
#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:
Mostrar la cita
(no
Mostrar la cita
demas
Mostrar la cita
T3.COD_BODEGA,T3.DES_BODEGA,T2.COD_UBI_ART,T4.COD_AGRUP,T4.DES_AGRUP,T2.LOT_
Mostrar la cita
NOT
Mostrar la cita
#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

Mostrar la cita
en el cual concateno
Mostrar la cita
valor 'nulo' (no
Mostrar la cita
descripción), todos los demas
Mostrar la cita
ejecurtarlo me da el
Mostrar la cita
value '0111000051nulo' to a
Mostrar la cita
.DES_AGRUP,T2.LOT_
Mostrar la cita
PST_CATAL_BODEG T3,
Mostrar la cita
T2.COD_UBI_ART) NOT
Mostrar la cita
Ads by Google
Search Busqueda sugerida