Update de contar varios registos de T1 a T2

23/04/2005 - 20:04 por J Lara | Informe spam
Tengo una consulta de 2 tablas, una tabla
es de clientes(T1.C1), y el campo que me interesa
es la cantidad de que veces nos visita, en la
segunda tabla (T2.C2) hay un campo que
se debe actualizar en forma manual anotando
el total de visitas que tuvo, osea que
si nos visito toda la semana en el T1,C1
debe haber 6 registros con el dato 1 en cada dia,
y en la T2.C2 se debe anotar el 6, Esto no siempre esta
actualizado y deseo ejecutar un update
para hacerlo automaticamente, el siguiente
script me actaliza ese dato pero en forma
erronea ya que me anota todas las visitas
de todos los clientes en todos los campos
de la tabla2 (T2.C2)
Osea si en total hubiera 10 clientes con 6
visitas cada uno a la semana me anota
el dato 60 en cada uno de los codigos de
clientes (T2.C2` repetido en todos)

Este es el Script erroneo:

update T1 set C1=(SELECT Count(T2.C2) FROM T2 T2
WHERE (T2.C2=1 and T2.C3 {ID}='X'))
where T1.C3 {ID}='X'

Como le haria para que el cliente 1 me le
anote sus visitas en la tabla2 y el cliente
2 en su respectiva registros y asi sucecivamente.
cabe mencionar que T1.C1 es el campo donde
saco el count para enviar a T2.C2 y el C3
es el ID.

Mil gracias por su apoyo.

Saludos.

Preguntas similare

Leer las respuestas

#1 Maxi
23/04/2005 - 21:13 | Informe spam
Hola, podrias hacer algo asi como:

update T1 set C1= TX.VALOR
FROM T1,(SELECT COUNT(*),ID FROM T2 GROUP BY ID) TX
WHERE TX.ID = T1.ID




Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas
Msn:

"J Lara" escribió en el mensaje
news:
Tengo una consulta de 2 tablas, una tabla
es de clientes(T1.C1), y el campo que me interesa
es la cantidad de que veces nos visita, en la
segunda tabla (T2.C2) hay un campo que
se debe actualizar en forma manual anotando
el total de visitas que tuvo, osea que
si nos visito toda la semana en el T1,C1
debe haber 6 registros con el dato 1 en cada dia,
y en la T2.C2 se debe anotar el 6, Esto no siempre esta
actualizado y deseo ejecutar un update
para hacerlo automaticamente, el siguiente
script me actaliza ese dato pero en forma
erronea ya que me anota todas las visitas
de todos los clientes en todos los campos
de la tabla2 (T2.C2)
Osea si en total hubiera 10 clientes con 6
visitas cada uno a la semana me anota
el dato 60 en cada uno de los codigos de
clientes (T2.C2` repetido en todos)

Este es el Script erroneo:

update T1 set C1=(SELECT Count(T2.C2) FROM T2 T2
WHERE (T2.C2=1 and T2.C3 {ID}='X'))
where T1.C3 {ID}='X'

Como le haria para que el cliente 1 me le
anote sus visitas en la tabla2 y el cliente
2 en su respectiva registros y asi sucecivamente.
cabe mencionar que T1.C1 es el campo donde
saco el count para enviar a T2.C2 y el C3
es el ID.

Mil gracias por su apoyo.

Saludos.


Respuesta Responder a este mensaje
#2 Alejandro Mesa
25/04/2005 - 16:35 | Informe spam
Trata,

update t2
set c2 = (select sum(t1.c1) from t1 where t1.[id] = t2.[id])
where t2.[id] = 'x'


update t2
set c2 = (select sum(t1.c1) from t1 where t1.[id] = 'x')
where t2.[id] = 'x'


AMB


"J Lara" wrote:

Tengo una consulta de 2 tablas, una tabla
es de clientes(T1.C1), y el campo que me interesa
es la cantidad de que veces nos visita, en la
segunda tabla (T2.C2) hay un campo que
se debe actualizar en forma manual anotando
el total de visitas que tuvo, osea que
si nos visito toda la semana en el T1,C1
debe haber 6 registros con el dato 1 en cada dia,
y en la T2.C2 se debe anotar el 6, Esto no siempre esta
actualizado y deseo ejecutar un update
para hacerlo automaticamente, el siguiente
script me actaliza ese dato pero en forma
erronea ya que me anota todas las visitas
de todos los clientes en todos los campos
de la tabla2 (T2.C2)
Osea si en total hubiera 10 clientes con 6
visitas cada uno a la semana me anota
el dato 60 en cada uno de los codigos de
clientes (T2.C2` repetido en todos)

Este es el Script erroneo:

update T1 set C1=(SELECT Count(T2.C2) FROM T2 T2
WHERE (T2.C2=1 and T2.C3 {ID}='X'))
where T1.C3 {ID}='X'

Como le haria para que el cliente 1 me le
anote sus visitas en la tabla2 y el cliente
2 en su respectiva registros y asi sucecivamente.
cabe mencionar que T1.C1 es el campo donde
saco el count para enviar a T2.C2 y el C3
es el ID.

Mil gracias por su apoyo.

Saludos.


Respuesta Responder a este mensaje
#3 J Lara
26/04/2005 - 02:53 | Informe spam
Gracias Maxi y Alejandro, probare ambas sugerencias

Saludos.

"Alejandro Mesa" escribió:

Trata,

update t2
set c2 = (select sum(t1.c1) from t1 where t1.[id] = t2.[id])
where t2.[id] = 'x'


update t2
set c2 = (select sum(t1.c1) from t1 where t1.[id] = 'x')
where t2.[id] = 'x'


AMB


"J Lara" wrote:

> Tengo una consulta de 2 tablas, una tabla
> es de clientes(T1.C1), y el campo que me interesa
> es la cantidad de que veces nos visita, en la
> segunda tabla (T2.C2) hay un campo que
> se debe actualizar en forma manual anotando
> el total de visitas que tuvo, osea que
> si nos visito toda la semana en el T1,C1
> debe haber 6 registros con el dato 1 en cada dia,
> y en la T2.C2 se debe anotar el 6, Esto no siempre esta
> actualizado y deseo ejecutar un update
> para hacerlo automaticamente, el siguiente
> script me actaliza ese dato pero en forma
> erronea ya que me anota todas las visitas
> de todos los clientes en todos los campos
> de la tabla2 (T2.C2)
> Osea si en total hubiera 10 clientes con 6
> visitas cada uno a la semana me anota
> el dato 60 en cada uno de los codigos de
> clientes (T2.C2` repetido en todos)
>
> Este es el Script erroneo:
>
> update T1 set C1=(SELECT Count(T2.C2) FROM T2 T2
> WHERE (T2.C2=1 and T2.C3 {ID}='X'))
> where T1.C3 {ID}='X'
>
> Como le haria para que el cliente 1 me le
> anote sus visitas en la tabla2 y el cliente
> 2 en su respectiva registros y asi sucecivamente.
> cabe mencionar que T1.C1 es el campo donde
> saco el count para enviar a T2.C2 y el C3
> es el ID.
>
> Mil gracias por su apoyo.
>
> Saludos.
>
>
Respuesta Responder a este mensaje
#4 J Lara
26/04/2005 - 03:58 | Informe spam
Alejandro y Maxi, gracias por su sugerencia, estoyp probando
pero recibo un error "Attempt to insert null Value into
colum C1, table T1; column does not allow nulls".

aunque reviso los datos que deben insertarse y no encuentro
ningun valor nulo.

podran ayudarme en esto ??

Gracias de antemano.

Saludos.


"Alejandro Mesa" escribió:

Trata,

update t2
set c2 = (select sum(t1.c1) from t1 where t1.[id] = t2.[id])
where t2.[id] = 'x'


update t2
set c2 = (select sum(t1.c1) from t1 where t1.[id] = 'x')
where t2.[id] = 'x'


AMB


"J Lara" wrote:

> Tengo una consulta de 2 tablas, una tabla
> es de clientes(T1.C1), y el campo que me interesa
> es la cantidad de que veces nos visita, en la
> segunda tabla (T2.C2) hay un campo que
> se debe actualizar en forma manual anotando
> el total de visitas que tuvo, osea que
> si nos visito toda la semana en el T1,C1
> debe haber 6 registros con el dato 1 en cada dia,
> y en la T2.C2 se debe anotar el 6, Esto no siempre esta
> actualizado y deseo ejecutar un update
> para hacerlo automaticamente, el siguiente
> script me actaliza ese dato pero en forma
> erronea ya que me anota todas las visitas
> de todos los clientes en todos los campos
> de la tabla2 (T2.C2)
> Osea si en total hubiera 10 clientes con 6
> visitas cada uno a la semana me anota
> el dato 60 en cada uno de los codigos de
> clientes (T2.C2` repetido en todos)
>
> Este es el Script erroneo:
>
> update T1 set C1=(SELECT Count(T2.C2) FROM T2 T2
> WHERE (T2.C2=1 and T2.C3 {ID}='X'))
> where T1.C3 {ID}='X'
>
> Como le haria para que el cliente 1 me le
> anote sus visitas en la tabla2 y el cliente
> 2 en su respectiva registros y asi sucecivamente.
> cabe mencionar que T1.C1 es el campo donde
> saco el count para enviar a T2.C2 y el C3
> es el ID.
>
> Mil gracias por su apoyo.
>
> Saludos.
>
>
Respuesta Responder a este mensaje
#5 Alejandro Mesa
26/04/2005 - 13:49 | Informe spam
J Lara,

Puedes postear la sentencia update que estas usando?


AMB

"J Lara" wrote:

Alejandro y Maxi, gracias por su sugerencia, estoyp probando
pero recibo un error "Attempt to insert null Value into
colum C1, table T1; column does not allow nulls".

aunque reviso los datos que deben insertarse y no encuentro
ningun valor nulo.

podran ayudarme en esto ??

Gracias de antemano.

Saludos.


"Alejandro Mesa" escribió:

> Trata,
>
> update t2
> set c2 = (select sum(t1.c1) from t1 where t1.[id] = t2.[id])
> where t2.[id] = 'x'
>
>
> update t2
> set c2 = (select sum(t1.c1) from t1 where t1.[id] = 'x')
> where t2.[id] = 'x'
>
>
> AMB
>
>
> "J Lara" wrote:
>
> > Tengo una consulta de 2 tablas, una tabla
> > es de clientes(T1.C1), y el campo que me interesa
> > es la cantidad de que veces nos visita, en la
> > segunda tabla (T2.C2) hay un campo que
> > se debe actualizar en forma manual anotando
> > el total de visitas que tuvo, osea que
> > si nos visito toda la semana en el T1,C1
> > debe haber 6 registros con el dato 1 en cada dia,
> > y en la T2.C2 se debe anotar el 6, Esto no siempre esta
> > actualizado y deseo ejecutar un update
> > para hacerlo automaticamente, el siguiente
> > script me actaliza ese dato pero en forma
> > erronea ya que me anota todas las visitas
> > de todos los clientes en todos los campos
> > de la tabla2 (T2.C2)
> > Osea si en total hubiera 10 clientes con 6
> > visitas cada uno a la semana me anota
> > el dato 60 en cada uno de los codigos de
> > clientes (T2.C2` repetido en todos)
> >
> > Este es el Script erroneo:
> >
> > update T1 set C1=(SELECT Count(T2.C2) FROM T2 T2
> > WHERE (T2.C2=1 and T2.C3 {ID}='X'))
> > where T1.C3 {ID}='X'
> >
> > Como le haria para que el cliente 1 me le
> > anote sus visitas en la tabla2 y el cliente
> > 2 en su respectiva registros y asi sucecivamente.
> > cabe mencionar que T1.C1 es el campo donde
> > saco el count para enviar a T2.C2 y el C3
> > es el ID.
> >
> > Mil gracias por su apoyo.
> >
> > Saludos.
> >
> >
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida