Update de una tabla con valores de otra

16/07/2003 - 09:23 por iDeafix | Informe spam
Tabla Cliente

telefono pre3 provincia
-
963222222 963 null
965222222 965 null


Tabla Prefijos

prefijo provincia

963 46
962 46
965 03


Quisiera actualizar el campo [provincia] de Cliente
con los valores de [provincia] de Prefijos
uniendo por prefijo=pre3

Preguntas similare

Leer las respuestas

#1 iDeafix
16/07/2003 - 10:09 | Informe spam
thnkU, nunca doy con esto tan sencillo. Queda en mi "archivo google".
¿No hay forma de crear este tipo de consultas desde el diseñador gráfico?

"Carlos Sacristan" <csacristanARROBAocasoPUNTOes> escribió en el mensaje
news:
UPDATE cliente SET provincia= pr.provincia
FROM cliente c INNER JOIN prefijos pr ON c.pre3 = pr.prefijo


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro

(Guía de netiquette del foro)
http://www.helpdna.net/bosqlfaq00.htm
http://perso.wanadoo.es/rubenvigon/foro

(FAQ's de SQL Server)
http://support.microsoft.com/defaul.../70faq.asp
http://www.helpdna.net/bosqlfaq.htm

"iDeafix" escribió en el mensaje
news:bf2uc8$a47jj$
> Tabla Cliente
>
> telefono pre3 provincia
> -
> 963222222 963 null
> 965222222 965 null
>
>
> Tabla Prefijos
>
> prefijo provincia
>
> 963 46
> 962 46
> 965 03
>
>
> Quisiera actualizar el campo [provincia] de Cliente
> con los valores de [provincia] de Prefijos
> uniendo por prefijo=pre3
>
>


Respuesta Responder a este mensaje
#2 Carlos Sacristan
16/07/2003 - 12:02 | Informe spam
Pues si las hay la verdad es que no las conozco, porque, sinceramente,
no utilizo la consola para mostrar el contenido de las tablas



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro

(Guía de netiquette del foro)
http://www.helpdna.net/bosqlfaq00.htm
http://perso.wanadoo.es/rubenvigon/foro

(FAQ's de SQL Server)
http://support.microsoft.com/defaul.../70faq.asp
http://www.helpdna.net/bosqlfaq.htm

"iDeafix" escribió en el mensaje
news:bf313c$afv21$
thnkU, nunca doy con esto tan sencillo. Queda en mi "archivo google".
¿No hay forma de crear este tipo de consultas desde el diseñador gráfico?

"Carlos Sacristan" <csacristanARROBAocasoPUNTOes> escribió en el mensaje
news:
> UPDATE cliente SET provincia= pr.provincia
> FROM cliente c INNER JOIN prefijos pr ON c.pre3 = pr.prefijo
>
>
> Un saludo
>
> -
> "Sólo sé que no sé nada. " (Sócrates)
>
> Por favor, responder únicamente al foro
>
> (Guía de netiquette del foro)
> http://www.helpdna.net/bosqlfaq00.htm
> http://perso.wanadoo.es/rubenvigon/foro
>
> (FAQ's de SQL Server)
> http://support.microsoft.com/defaul.../70faq.asp
> http://www.helpdna.net/bosqlfaq.htm
>
> "iDeafix" escribió en el mensaje
> news:bf2uc8$a47jj$
> > Tabla Cliente
> >
> > telefono pre3 provincia
> > -
> > 963222222 963 null
> > 965222222 965 null
> >
> >
> > Tabla Prefijos
> >
> > prefijo provincia
> >
> > 963 46
> > 962 46
> > 965 03
> >
> >
> > Quisiera actualizar el campo [provincia] de Cliente
> > con los valores de [provincia] de Prefijos
> > uniendo por prefijo=pre3
> >
> >
>
>


Respuesta Responder a este mensaje
#3 iDeafix
17/07/2003 - 09:23 | Informe spam
Bueno, ejem, es por motivos de comodidad mía para simplificar consultas
posteriores, por eso mismo en esta nueva versión tengo el prefijo en un
campo y es redundante con el teléfono. Sé que no es ortodoxo, pero me
resulta práctico. Por otro lado, creo que en el futuro será buena idea crear
indices sobre estos dos campos herejes puesto que los usaré para trabajar
por secciones.

También existe todavía cierta torpeza mía a la hora de crear consultas,
vistas, sp. (vengo de access y allí las consultas más complejas se hacen
como los churros). Con lo que he tirado por el camino de enmedio, complicar
un pelín la tabla (y su mantenimiento) para simplificarme las consultas.
Realmente es la única tabla (y la más usada) dónde hago estas herejías, el
resto de tablas y relaciones se ajustan al orden establecido por la teoría
de base de datos aprendida en la excelsa universidad :O).

De todas formas no es descabellado guardar el campo provincia en cliente, es
lo de toda la vida ¿no? Lo que ocurre es que, de entrada, a veces no
dispongo de ese dato y es necesario calcularlo desde el teléfono con la
tabla de prefijos. Incluso a veces, según el prefijo me interesa hacer
grupos de clientes especiales con provincias virtuales, para ello varío la
tabla prefijos y recalculo (en el futuro seguramente cree un campo
provinciavirtual o mejor llamado, grupovirtual, para no falsear datos de
provincia geográfica).

saludos


"Javier Loria(MVP)" escribió en el mensaje
news:ez$
Hola iDeafix:
Aunque por supuesto la respuesta que Carlos es totalmente exacta, me
queda la duda de porque quieres tener en la Tabla de Clientes la Provincia
si ya la tienes en la tabla de Prefijos? y si no sera mas facil crear una
vista tipo:
CREATE VIEW ClientesconProvincia
AS
SELECT Clientes.telefono
Clientes.pre3,
Prefijos.provincia
FROM Clientes JOIN Prefijos ON
Clientes.pre3=Prefijos.pre

Saludos,

Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

> thnkU, nunca doy con esto tan sencillo. Queda en mi "archivo google".
> ¿No hay forma de crear este tipo de consultas desde el diseñador
> gráfico?
>
> "Carlos Sacristan" <csacristanARROBAocasoPUNTOes> escribió en el
> mensaje news:
>> UPDATE cliente SET provincia= pr.provincia
>> FROM cliente c INNER JOIN prefijos pr ON c.pre3 = pr.prefijo
>>
>>
>> Un saludo
>>
>> -
>> "Sólo sé que no sé nada. " (Sócrates)
>>
>> Por favor, responder únicamente al foro
>>
>> (Guía de netiquette del foro)
>> http://www.helpdna.net/bosqlfaq00.htm
>> http://perso.wanadoo.es/rubenvigon/foro
>>
>> (FAQ's de SQL Server)
>> http://support.microsoft.com/defaul.../70faq.asp
>> http://www.helpdna.net/bosqlfaq.htm
>>
>> "iDeafix" escribió en el mensaje
>> news:bf2uc8$a47jj$
>>> Tabla Cliente
>>>
>>> telefono pre3 provincia
>>> -
>>> 963222222 963 null
>>> 965222222 965 null
>>>
>>>
>>> Tabla Prefijos
>>>
>>> prefijo provincia
>>>
>>> 963 46
>>> 962 46
>>> 965 03
>>>
>>>
>>> Quisiera actualizar el campo [provincia] de Cliente
>>> con los valores de [provincia] de Prefijos
>>> uniendo por prefijo=pre3


Respuesta Responder a este mensaje
#4 Javier Loria\(MVP\)
17/07/2003 - 17:45 | Informe spam
Hola:
Te recomiendo por comodidad tuya, que pienses en cambiarla, es segun mi
criterio mucho mas practico. Lo digo no porque se un FANATICO DE LA
NORMALIZACION, (que si soy pero eso es otra cosa), te lo digo por
experiencia de los problemas que se provocan. Las "reglas" estan ahi para
tu proteccion y aun cuando a veces es necesario romperlas debe hacerse con
mucho cuidado y con un criterio muy extricto.
Si tienes problemas con la construccion de las Consultas o con el codigo
que ya esta escrito, puedes hacer lo siguiente:

a) Renombra la Tabla Clientes:
SP_RENAME 'Clientes', 'ClientesSinProvincia'
b) Crea una Vista Llamada Clientes (como la que te senale):
CREATE VIEW Clientes
AS
SELECT Clientes.Columna1,
Clientes.Columna2, ...
Clientes.telefono
Clientes.pre3,
Prefijos.provincia
FROM Clientes JOIN Prefijos ON
Clientes.pre3=Prefijos.pre
c) Usa Clientes para todo como si fuera un tabla (para eso son las
vistas). Es probable que tengas que recompilar los Procedimientos
Alamcenados y Triggers.
d) Debes tener 2 cuidados: No actualizar de un golpe alguna columna de
la tabla cliente y telefono simultaneamente (ya que el hacerlo asi da
problemas) y no abusar de esto de manera que tengas vistas de vistas de
vistas que referencias una vista que hace uso de una tabla. Porque entonces
si "embarras" el desempeno.

Saludos,


Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

"iDeafix" wrote in message
news:bf5ins$b97j1$

Bueno, ejem, es por motivos de comodidad mía para simplificar


consultas
posteriores, por eso mismo en esta nueva versión tengo el prefijo en un
campo y es redundante con el teléfono. Sé que no es ortodoxo, pero me
resulta práctico. Por otro lado, creo que en el futuro será buena idea


crear
indices sobre estos dos campos herejes puesto que los usaré para trabajar
por secciones.

También existe todavía cierta torpeza mía a la hora de crear


consultas,
vistas, sp. (vengo de access y allí las consultas más complejas se hacen
como los churros). Con lo que he tirado por el camino de enmedio,


complicar
un pelín la tabla (y su mantenimiento) para simplificarme las consultas.
Realmente es la única tabla (y la más usada) dónde hago estas herejías, el
resto de tablas y relaciones se ajustan al orden establecido por la teoría
de base de datos aprendida en la excelsa universidad :O).

De todas formas no es descabellado guardar el campo provincia en cliente,


es
lo de toda la vida ¿no? Lo que ocurre es que, de entrada, a veces no
dispongo de ese dato y es necesario calcularlo desde el teléfono con la
tabla de prefijos. Incluso a veces, según el prefijo me interesa hacer
grupos de clientes especiales con provincias virtuales, para ello varío la
tabla prefijos y recalculo (en el futuro seguramente cree un campo
provinciavirtual o mejor llamado, grupovirtual, para no falsear datos de
provincia geográfica).

saludos


"Javier Loria(MVP)" escribió en el mensaje
news:ez$
> Hola iDeafix:
> Aunque por supuesto la respuesta que Carlos es totalmente exacta, me
> queda la duda de porque quieres tener en la Tabla de Clientes la


Provincia
> si ya la tienes en la tabla de Prefijos? y si no sera mas facil crear


una
> vista tipo:
> CREATE VIEW ClientesconProvincia
> AS
> SELECT Clientes.telefono
> Clientes.pre3,
> Prefijos.provincia
> FROM Clientes JOIN Prefijos ON
> Clientes.pre3=Prefijos.pre
>
> Saludos,
>
> Javier Loria
> Costa Rica (MVP)
> Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
> que pueda ser copiado y pegado al Query Analizer.
> La version de SQL y Service Pack tambien ayuda.
>
> > thnkU, nunca doy con esto tan sencillo. Queda en mi "archivo google".
> > ¿No hay forma de crear este tipo de consultas desde el diseñador
> > gráfico?
> >
> > "Carlos Sacristan" <csacristanARROBAocasoPUNTOes> escribió en el
> > mensaje news:
> >> UPDATE cliente SET provincia= pr.provincia
> >> FROM cliente c INNER JOIN prefijos pr ON c.pre3 = pr.prefijo
> >>
> >>
> >> Un saludo
> >>
> >> -
> >> "Sólo sé que no sé nada. " (Sócrates)
> >>
> >> Por favor, responder únicamente al foro
> >>
> >> (Guía de netiquette del foro)
> >> http://www.helpdna.net/bosqlfaq00.htm
> >> http://perso.wanadoo.es/rubenvigon/foro
> >>
> >> (FAQ's de SQL Server)
> >> http://support.microsoft.com/defaul.../70faq.asp
> >> http://www.helpdna.net/bosqlfaq.htm
> >>
> >> "iDeafix" escribió en el mensaje
> >> news:bf2uc8$a47jj$
> >>> Tabla Cliente
> >>>
> >>> telefono pre3 provincia
> >>> -
> >>> 963222222 963 null
> >>> 965222222 965 null
> >>>
> >>>
> >>> Tabla Prefijos
> >>>
> >>> prefijo provincia
> >>>
> >>> 963 46
> >>> 962 46
> >>> 965 03
> >>>
> >>>
> >>> Quisiera actualizar el campo [provincia] de Cliente
> >>> con los valores de [provincia] de Prefijos
> >>> uniendo por prefijo=pre3
>
>


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