Borrar registros

26/09/2005 - 23:46 por hugo | Informe spam
Hola foro

Disculpen lo basico de mi mpregunta.
Tengo dos tablas, una llamada tblFacturas, y otra llamada tblItemsFacturas.
Estan relacionadas por 3 campos respectivamente Letra, Serie y Numero.
Dado que estan relacionadas, quiero eliminar primero registros del lado
Varios, es decir de la tabla tblItemsFacturas.
El problema se me presenta porque debo borrar solo los registros mayores a
cierta fecha, y el campo fecha esta en la tabla tblFacturas no en la tabla
tblItemsFacturas.
Si intento hacer esto

DELETE tblFacturas.* FROM tblFacturas INNER JOIN tblItemsFacturas ON
tblFacturas.Empresa = tblItemsFacturas.Empresa AND tblFacturas.Letra tblItemsFacturas.Letra AND tblFacturas.Serie = tblItemsFacturas.Serie AND
tblFacturas.Numero = tblItemsFacturas.Numero WHERE
(tblFacturas.FechaEmision >= CONVERT(DATETIME, '2005-09-01 00:00:00', 102))

no funciona.
Alguien me puede decir como se puede logra esto?

Preguntas similare

Leer las respuestas

#1 Harold Crow
27/09/2005 - 00:02 | Informe spam
por que no configuras las tablas para que se actualicen en cascada, de esta
forma, cuando borres en tblFacturas se eliminiran automaticamente lo
relacionado que esta en tblItemsFacturas??

"hugo" escribió en el mensaje
news:
Hola foro

Disculpen lo basico de mi mpregunta.
Tengo dos tablas, una llamada tblFacturas, y otra llamada
tblItemsFacturas.
Estan relacionadas por 3 campos respectivamente Letra, Serie y Numero.
Dado que estan relacionadas, quiero eliminar primero registros del lado
Varios, es decir de la tabla tblItemsFacturas.
El problema se me presenta porque debo borrar solo los registros mayores a
cierta fecha, y el campo fecha esta en la tabla tblFacturas no en la tabla
tblItemsFacturas.
Si intento hacer esto

DELETE tblFacturas.* FROM tblFacturas INNER JOIN tblItemsFacturas ON
tblFacturas.Empresa = tblItemsFacturas.Empresa AND tblFacturas.Letra > tblItemsFacturas.Letra AND tblFacturas.Serie = tblItemsFacturas.Serie AND
tblFacturas.Numero = tblItemsFacturas.Numero WHERE
(tblFacturas.FechaEmision >= CONVERT(DATETIME, '2005-09-01 00:00:00',
102))

no funciona.
Alguien me puede decir como se puede logra esto?


Respuesta Responder a este mensaje
#2 Nery Gonzalez
27/09/2005 - 01:03 | Informe spam
Esto lo podes hacer en dos pasos, primero eliminando los hijos (varios) y
luego las madres (uno)

DELETE tblItemsFacturas FROM tblFacturas INNER JOIN tblItemsFacturas ON
tblFacturas.Empresa = tblItemsFacturas.Empresa AND tblFacturas.Letra tblItemsFacturas.Letra AND tblFacturas.Serie = tblItemsFacturas.Serie AND
tblFacturas.Numero = tblItemsFacturas.Numero WHERE
(tblFacturas.FechaEmision >= CONVERT(DATETIME, '2005-09-01 00:00:00', 102))

DELETE FROM tblFacturas WHERE
(tblFacturas.FechaEmision >= CONVERT(DATETIME, '2005-09-01 00:00:00', 102))

Tengo una pregunta, porque no relacionaste con una sola clave desde la tabla
tblFacturas por ejemplo IDFactura hacia la tblItemsFactura y asi te ahorras
la repeticion de los otros campos en ambas tablas.



"hugo" escribió en el mensaje
news:
Hola foro

Disculpen lo basico de mi mpregunta.
Tengo dos tablas, una llamada tblFacturas, y otra llamada
tblItemsFacturas.
Estan relacionadas por 3 campos respectivamente Letra, Serie y Numero.
Dado que estan relacionadas, quiero eliminar primero registros del lado
Varios, es decir de la tabla tblItemsFacturas.
El problema se me presenta porque debo borrar solo los registros mayores a
cierta fecha, y el campo fecha esta en la tabla tblFacturas no en la tabla
tblItemsFacturas.
Si intento hacer esto

DELETE tblFacturas.* FROM tblFacturas INNER JOIN tblItemsFacturas ON
tblFacturas.Empresa = tblItemsFacturas.Empresa AND tblFacturas.Letra > tblItemsFacturas.Letra AND tblFacturas.Serie = tblItemsFacturas.Serie AND
tblFacturas.Numero = tblItemsFacturas.Numero WHERE
(tblFacturas.FechaEmision >= CONVERT(DATETIME, '2005-09-01 00:00:00',
102))

no funciona.
Alguien me puede decir como se puede logra esto?


Respuesta Responder a este mensaje
#3 Gustavo Larriera [MVP]
27/09/2005 - 01:10 | Informe spam
Agrego a la solución: Hacer los DELETEs en una misma transacción.

Gustavo Larriera
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Nery Gonzalez" wrote in message
news:
Esto lo podes hacer en dos pasos, primero eliminando los hijos (varios) y
luego las madres (uno)

DELETE tblItemsFacturas FROM tblFacturas INNER JOIN tblItemsFacturas ON
tblFacturas.Empresa = tblItemsFacturas.Empresa AND tblFacturas.Letra > tblItemsFacturas.Letra AND tblFacturas.Serie = tblItemsFacturas.Serie AND
tblFacturas.Numero = tblItemsFacturas.Numero WHERE
(tblFacturas.FechaEmision >= CONVERT(DATETIME, '2005-09-01 00:00:00',
102))

DELETE FROM tblFacturas WHERE
(tblFacturas.FechaEmision >= CONVERT(DATETIME, '2005-09-01 00:00:00',
102))

Tengo una pregunta, porque no relacionaste con una sola clave desde la
tabla tblFacturas por ejemplo IDFactura hacia la tblItemsFactura y asi te
ahorras la repeticion de los otros campos en ambas tablas.



"hugo" escribió en el mensaje
news:
Hola foro

Disculpen lo basico de mi mpregunta.
Tengo dos tablas, una llamada tblFacturas, y otra llamada
tblItemsFacturas.
Estan relacionadas por 3 campos respectivamente Letra, Serie y Numero.
Dado que estan relacionadas, quiero eliminar primero registros del lado
Varios, es decir de la tabla tblItemsFacturas.
El problema se me presenta porque debo borrar solo los registros mayores
a
cierta fecha, y el campo fecha esta en la tabla tblFacturas no en la
tabla
tblItemsFacturas.
Si intento hacer esto

DELETE tblFacturas.* FROM tblFacturas INNER JOIN tblItemsFacturas ON
tblFacturas.Empresa = tblItemsFacturas.Empresa AND tblFacturas.Letra >> tblItemsFacturas.Letra AND tblFacturas.Serie = tblItemsFacturas.Serie AND
tblFacturas.Numero = tblItemsFacturas.Numero WHERE
(tblFacturas.FechaEmision >= CONVERT(DATETIME, '2005-09-01 00:00:00',
102))

no funciona.
Alguien me puede decir como se puede logra esto?






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida