Sv Community El Salvador
Soporte y Tecnología => Programación => Base de Datos => Mensaje iniciado por: Darkness en julio 29, 2009, 09:13:36 am
-
Bueno la cuestion esta as:
Tengo dos tablas
Tabla1 = Documento
campos:
NumeroDocumento
Cliente
NombreCliente
Notas
Tabla2 = DocumentoConNotas
Campos:
NumeroDocumento
Notas
No pregunten por que esta asi pues mis razones tengo :roll:
lo datos que contienen
Tabla: Documento
NumeroDocumento Cliente NombreCliente Notas
000001 001 Juan Perez Null
000002 002 Pedro Perez Null
000003 003 Julio Rios Null
Tabla: DocumentoConNotas
NumeroDocumento Notas
000001 Cliente paragar....
000002 Credito a 6 meses...
000003 Credito a 30 dias
Entonces esto el punto es que en la tabla1 (es la que mas me inporta) no posee los campos notas, mientras que la tabla2 si los tiene
el numero de registros es el mismo tiene la misma cantidad y tipo de datos
Necesito hacer un update el cual me actualice las notas de tabla1 de cada documento partiendo de la nota de la tabla2
tengo un query asi pero no me funciona :phew:
update pruebas.clana.Documento
set notas = (select notas from pruebas.dbo.DocumentoConNotas)
where pruebas.clana.Documento.documento = (select documento
from pruebas.dbo.DocumentoConNotas)
me devuelve este error
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
se que esta malisimo pues es error de logica ...
HelpMe....
-
Hacelo a si a ver q tal funciona...
UPDATE DOCUMENTO AS A INNER JOIN DOCUMENTOCONNOTAS AS B ON A.NUMERODOCUMENTO = B.NUMERODOCUMENTO SET A.NOTAS = B.NOTAS
Intentanlo y me avisas a ver q pasa.... :thumbsup:
PD: yo no lo he intentado pero se me ocurrio ... jeje
-
Hacelo a si a ver q tal funciona...
UPDATE DOCUMENTO AS A INNER JOIN DOCUMENTOCONNOTAS AS B ON A.NUMERODOCUMENTO = B.NUMERODOCUMENTO SET A.NOTAS = B.NOTAS
Intentanlo y me avisas a ver q pasa.... :thumbsup:
PD: yo no lo he intentado pero se me ocurrio ... jeje
Me devolvio esto
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'AS'.
-
Me devolvio esto
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'AS'.
con que gestor de base de datos estas trabajando?
-
con que gestor de base de datos estas trabajando?
Ups perdon por no aclarar :phew:
uso MSSQL Server 2005
-
Ups perdon por no aclarar :phew:
uso MSSQL Server 2005
Bueno intenta haciendolo a asi
UPDATE DOCUMENTO INNER JOIN DOCUMENTOCONNOTAS ON DOCUMENTO.NUMERODOCUMENTO = DOCUMENTOCONNOTAS.NUMERODOCUMENTO SET DOCUMENTO.NOTAS = DOCUMENTOCONNOTAS.NOTAS
ya lo probe con mysql y funciona perfectamente.!
-
update a
set a.notas=b.notas
from pruebas.clana.Documento as a, pruebas.dbo.DocumentoConNotas as b
where a.pruebas.dbo.DocumentoConNotas=b.pruebas.dbo.DocumentoConNotas
-
Bueno intenta haciendolo a asi
UPDATE DOCUMENTO INNER JOIN DOCUMENTOCONNOTAS ON DOCUMENTO.NUMERODOCUMENTO = DOCUMENTOCONNOTAS.NUMERODOCUMENTO SET DOCUMENTO.NOTAS = DOCUMENTOCONNOTAS.NOTAS
ya lo probe con mysql y funciona perfectamente.!
ok. SI ME FUNCIONO MAN
solo que le hice un pequeñito cambio
UPDATE PRUEBAS.clana.documento
SET PRUEBAS.clana.documento.NOTAS = PRUEBAS.dbo.DocumentoConNotas.NOTAS
from PRUEBAS.clana.documento INNER JOIN PRUEBAS.dbo.DocumentoConNotas
ON PRUEBAS.clana.documento.DOCUMENTO = PRUEBAS.dbo.DocumentoConNotas.DOCUMENTO
:yahoo: Gracias!!!
-
y si creas un trigger para evitar estar haciendo esto¿¿??
o quitar el campo notas de la tabla Documento y crear una vista que haga lo que necesitas ?¿¿?
-
y si creas un trigger para evitar estar haciendo esto¿¿??
o quitar el campo notas de la tabla Documento y crear una vista que haga lo que necesitas ?¿¿?
Nop man solo lo necesitaba para la carga inicial pues ahora ya se carga automaticamente en la tabla Documento, ya no necesitare mas hacerlo de nuevo, como te repito es solo para la carga inicial (El historico)
el trigger ya lo hice pero no para esta funcion sino para hacer un insert desde un sitio remoto, el problema era que antes este campo no estaba incluido en el trigger pero ahora sip.
Grx...