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

Collation

Estas en el tema de Collation en el foro de SQL Server en Foros del Web. Estimados buen día, tengo el siguiente query me da problemas de collation y aun cuando le obligo a que use un collate igual para ambos ...
  #1 (permalink)  
Antiguo 06/10/2010, 10:00
 
Fecha de Ingreso: febrero-2008
Mensajes: 133
Antigüedad: 16 años, 2 meses
Puntos: 0
Exclamación Collation

Estimados buen día, tengo el siguiente query me da problemas de collation y aun cuando le obligo a que use un collate igual para ambos campos me sigue dando el mismo error de collation

Query:

Código:
INSERT INTO DDD_TOTAL_CLASE
SELECT  t.periodo, 
    t.co_producto_pfz, 
    sum(t.unidades) total_clase,
    Sum(t.unidades * n.PESO) as total_clase_kilos
FROM DDD_TMP as T left outer join DDD_NOMBRES as n on n.NOMBRE_DDD=t.co_producto
WHERE T.co_producto COLLATE DATABASE_DEFAULT = N.NOMBRE_DDD COLLATE DATABASE_DEFAULT
GROUP BY T.periodo, 
    T.co_producto_pfz
Error:
Código HTML:
Cannot resolve collation conflict for equal to operation.
  #2 (permalink)  
Antiguo 06/10/2010, 10:42
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Collation

Saludos

Haz intentado de esta forma:

Código SQL:
Ver original
  1. INSERT INTO DDD_TOTAL_CLASE
  2. SELECT  t.periodo,
  3.     t.co_producto_pfz,
  4.     SUM(t.unidades) total_clase,
  5.     SUM(t.unidades * n.PESO) AS total_clase_kilos
  6. FROM DDD_TMP AS T LEFT OUTER JOIN DDD_NOMBRES AS n
  7. WHERE
  8. N.NOMBRE_DDD COLLATE DATABASE_DEFAULT = T.co_producto  COLLATE DATABASE_DEFAULT
  9. T.co_producto COLLATE DATABASE_DEFAULT = N.NOMBRE_DDD COLLATE DATABASE_DEFAULT
  10. GROUP BY T.periodo,
  11.     T.co_producto_pfz
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 06/10/2010, 11:04
 
Fecha de Ingreso: febrero-2008
Mensajes: 133
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Collation

Ya consegui el error muchas gracias, debía hacer el collate en el on y no en la clausula where asi:

Código SQL:
Ver original
  1. INSERT INTO DDD_TOTAL_CLASE
  2. SELECT  t.periodo,
  3.     t.co_producto_pfz,
  4.     SUM(t.unidades) total_clase,
  5.     SUM(t.unidades * n.PESO) AS total_clase_kilos
  6. FROM DDD_TMP AS T LEFT OUTER JOIN DDD_NOMBRES AS n ON N.NOMBRE_DDD COLLATE DATABASE_DEFAULT=T.co_producto COLLATE DATABASE_DEFAULT
  7. GROUP BY T.periodo,
  8.     T.co_producto_pfz
  #4 (permalink)  
Antiguo 06/10/2010, 11:17
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Collation

Creo que no es necesario aplicar el collate a ambas partes de la igualdad.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.

Etiquetas: Ninguno
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 13:40.