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

ayuda con query

Estas en el tema de ayuda con query en el foro de SQL Server en Foros del Web. Bueno tengo mi query aqui, pero necesito saber un tercer dato (Vp = 0) que se encuentra en una tercer tabla. (tablaNUEVA) UPDATE tablaCH SET ...
  #1 (permalink)  
Antiguo 15/04/2009, 14:45
 
Fecha de Ingreso: abril-2009
Mensajes: 9
Antigüedad: 15 años
Puntos: 0
ayuda con query

Bueno tengo mi query aqui, pero necesito saber un tercer dato (Vp = 0) que se encuentra en una tercer tabla. (tablaNUEVA)

UPDATE tablaCH
SET Rst = Rst - 5
FROM tablaCH JOIN tablaMB ON tablaCH.Account = tablaMB.Account
WHERE (tablaMB.Name = 'Vp') AND (tablaMB.Stat = 1)
AND (tablaNUEVA.Vp = 0);

Al poner la ultima linea, el debugger me dice esto:
Cita:
Msg 468, Level 16, State 9, Line 4
Cannot resolve the collation conflict between "Modern_Spanish_CI_AS" and "Modern_Spanish_CS_AS" in the equal to operation.
Msg 4104, Level 16, State 1, Line 4
The multi-part identifier "tablaNUEVA.Vp" could not be bound.
Tengo poco conociemiento de sql y llegue a armala simple al query, pero con la tercer linea, se me complicaron un poco las cosas.
Como puedo hacerla bien?
  #2 (permalink)  
Antiguo 15/04/2009, 15:11
Avatar de vrenzo  
Fecha de Ingreso: febrero-2007
Mensajes: 289
Antigüedad: 17 años, 2 meses
Puntos: 15
Respuesta: ayuda con query

Hola..

Te falta hacer un join a la tercera Tabla "tablaNUEVA" caso contrario como sables que dato los relaciona para la condición.

por ejemplo:

PDATE tablaCH
SET Rst = Rst - 5
FROM tablaCH JOIN tablaMB ON tablaCH.Account = tablaMB.Account
JOIN tablaNueva ON tablaNueva.Account = tablaMB.Account
WHERE (tablaMB.Name = 'Vp') AND (tablaMB.Stat = 1)
AND (tablaNUEVA.Vp = 0);
  #3 (permalink)  
Antiguo 15/04/2009, 15:42
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: ayuda con query

Tienes un problema de intercalacion.
Código sql:
Ver original
  1. UPDATE tablaCH
  2. SET Rst = Rst - 5
  3. FROM tablaCH JOIN tablaMB ON tablaCH.Account = tablaMB.Account COLLATE Modern_Spanish_CS_AS
  4. JOIN tablaNueva ON tablaNueva.Account = tablaMB.Account
  5. WHERE tablaMB.Name = 'Vp' AND tablaMB.Stat = 1
  6. AND tablaNUEVA.Vp = 0
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #4 (permalink)  
Antiguo 15/04/2009, 15:54
 
Fecha de Ingreso: abril-2009
Mensajes: 9
Antigüedad: 15 años
Puntos: 0
Respuesta: ayuda con query

muchas gracias a los dos, me ayudaron a solucionarlo ^^.

Ahora para poner en un job esto consume muchos recursos?
  #5 (permalink)  
Antiguo 15/04/2009, 15:58
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: ayuda con query

Depende de la cantidad de registros, de la capacidad de tu servidor, frecuencia de ejecucion, etc.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #6 (permalink)  
Antiguo 15/04/2009, 17:36
 
Fecha de Ingreso: abril-2009
Mensajes: 9
Antigüedad: 15 años
Puntos: 0
Respuesta: ayuda con query

y mas o menos debe haber unas 100mil rows en dos tablas y en la tercera 200 mil, 4gb de ram, micro core2quad, aproximadamente cada 10 minutos debe ejeecutarse.
  #7 (permalink)  
Antiguo 15/04/2009, 20:43
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: ayuda con query

¿Indices?, ¿Los hay en tu tabla?
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 11:05.