Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Error de conversión al convertir el valor varchar OR

Estas en el tema de Error de conversión al convertir el valor varchar OR en el foro de SQL Server en Foros del Web. Buenos dias. Tengo un problema con un query, al solicitar los datos me manda el error siguiente: Conversion failed when converting the varchar value '0R' ...
  #1 (permalink)  
Antiguo 27/08/2014, 09:52
 
Fecha de Ingreso: agosto-2014
Mensajes: 3
Antigüedad: 9 años, 7 meses
Puntos: 0
Error de conversión al convertir el valor varchar OR

Buenos dias.

Tengo un problema con un query, al solicitar los datos me manda el error siguiente:

Conversion failed when converting the varchar value '0R' to data type int.

Ya realice un chequeo a mi DB, no este con problemas y no manda errores detectados,
lo curioso es que la semana pasaba no me mandaba este problema usando el mismo query.

Este es el query que estoy usando:
Código SQL:
Ver original
  1. SELECT MINVE01.NUM_MOV, MINVE01.CVE_ART, INVE01.DESCR,
  2. CASE MINVE01.CVE_CPTO WHEN 51 THEN MINVE01.CANT * - 1 WHEN 56 THEN MINVE01.CANT * - 1 ELSE MINVE01.CANT END AS CANTIDAD,
  3. MINVE01.CVE_CPTO, CONVERT(CHAR(12), MINVE01.FECHA_DOCU, 106) AS FECHA, MINVE01.PRECIO, CLIE01.CLASIFIC, CLIE01.CLAVE,
  4. CLIE01.NOMBRE, VEND01.CVE_VEND,
  5. CASE MINVE01.CVE_CPTO WHEN 51 THEN MINVE01.CANT * - 1 * MINVE01.PRECIO WHEN 56 THEN MINVE01.CANT * - 1 * MINVE01.PRECIO ELSE MINVE01.CANT
  6. * MINVE01.PRECIO END AS IMPORTE, SUBSTRING(CLIE01.CLASIFIC, 4, 1) AS CANAL, SUBSTRING(CLIE01.CLASIFIC, 5, 1) AS POF, CONVERT(CHAR(3),
  7. MINVE01.FECHA_DOCU, 109) AS MES, VEND01.NOMBRE AS VENDE, SUBSTRING(CLIE01.CLASIFIC, 1, 2) AS ESTADO,
  8. CASE SUBSTRING(CLIE01.CLASIFIC, 1, 2)
  9. WHEN 01 THEN 'Aguascalientes' WHEN 02 THEN 'Baja California Norte' WHEN 03 THEN 'Baja California Sur' WHEN 04 THEN 'Campeche' WHEN 05 THEN
  10. 'Coahuila' WHEN 06 THEN 'Colima' WHEN 07 THEN 'Chiapas' WHEN 08 THEN 'Chihuahua' WHEN 09 THEN 'Distrito Federal' WHEN 10 THEN 'Durango'
  11. WHEN 11 THEN 'Guanajuato' WHEN 12 THEN 'Guerrero' WHEN 13 THEN 'Hidalgo' WHEN 14 THEN 'Jalisco' WHEN 15 THEN 'Estado de Mexico' WHEN
  12. 16 THEN 'Michoacan' WHEN 17 THEN 'Morelos' WHEN 18 THEN 'Nayarit' WHEN 19 THEN 'Nuevo leon' WHEN 20 THEN 'Oaxaca' WHEN 21 THEN 'Puebla'
  13. WHEN 22 THEN 'Queretaro' WHEN 23 THEN 'Quintana Roo' WHEN 24 THEN 'San Luis Potosi' WHEN 25 THEN 'Sinaloa' WHEN 26 THEN 'Sonora' WHEN
  14. 27 THEN 'Tabasco' WHEN 28 THEN 'Tamaulipas' WHEN 29 THEN 'Tlaxcala' WHEN 30 THEN 'Veracruz' WHEN 31 THEN 'Yucatan' WHEN 32 THEN 'Zacatecas'
  15. WHEN 33 THEN 'Extranjeros' ELSE 'x' END AS DESTADO, SUBSTRING(CLIE01.CLASIFIC, 4, 1) AS TIPOC, CASE SUBSTRING(CLIE01.CLASIFIC, 4, 1)
  16. WHEN 'A' THEN 'Autoservicios' WHEN 'C' THEN 'Centros de Consumo' WHEN 'D' THEN 'Detallistas' WHEN 'E' THEN 'Otros' WHEN 'F' THEN 'Personas Fisicas'
  17. WHEN 'H' THEN 'Hoteles' WHEN 'I' THEN 'Institucionales' WHEN 'M' THEN 'Mayoristas' WHEN 'O' THEN 'Otros' WHEN 'R' THEN 'Restaurantes' WHEN
  18. 'S' THEN 'Otros' WHEN 'V' THEN 'Departamentales' WHEN 'X' THEN 'Otros' ELSE 'x' END AS TICLIENTE,
  19. CASE VEND01.CLASIFIC
  20. WHEN 'A' THEN 'Autoservicios'
  21. WHEN 'P' THEN 'Plaza'
  22. WHEN 'D' THEN 'Directos Plaza'
  23. ELSE 'Foraneo' END AS DCANAL,
  24.  
  25. INVE01.UNI_EMP AS UNIXCAJA,
  26. CASE MINVE01.CVE_CPTO WHEN 51 THEN (MINVE01.CANT / INVE01.UNI_EMP)
  27. ELSE (MINVE01.CANT / INVE01.UNI_EMP)* -1 END AS CAJAS, CONVERT(CHAR(4), MINVE01.FECHA_DOCU, 102) AS ANI
  28. FROM CLIE01 RIGHT OUTER JOIN
  29. VEND01 RIGHT OUTER JOIN
  30. MINVE01 ON VEND01.CVE_VEND = MINVE01.VEND ON CLIE01.CLAVE = MINVE01.CLAVE_CLPV LEFT OUTER JOIN
  31. INVE01 ON MINVE01.CVE_ART = INVE01.CVE_ART
  32. WHERE ((MINVE01.FECHA_DOCU >= '2014-08-01') AND (MINVE01.FECHA_DOCU <= '2014-08-26') AND (MINVE01.CVE_CPTO = 4 OR
  33. MINVE01.CVE_CPTO = 51 OR
  34. MINVE01.CVE_CPTO = 56 OR
  35. MINVE01.CVE_CPTO = 2) AND INVE01.UNI_EMP > 0)
  36. ORDER BY MINVE01.NUM_MOV


De antemano gracias por el apoyo

Última edición por gnzsoloyo; 27/08/2014 a las 10:05
  #2 (permalink)  
Antiguo 27/08/2014, 11:08
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Error de conversión al convertir el valor varchar OR

porque en tus when no usas '01','02'?? si estas haciendo substring entonces estas comparando con cadenas, y si pones 01 es un entero y cuando comparas entero contra un string en un case algo como esto

Código SQL:
Ver original
  1. SELECT CASE WHEN campo=1 THEN 'si' ELSE 'no' END AS campo2 FROM tabla

Marca error deberias verificar tus tipos de datos en tus cases...
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: query, select, siguiente, valor, varchar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:24.