elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Problema con Update y Select
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con Update y Select  (Leído 2,693 veces)
ssccaann43 ©


Desconectado Desconectado

Mensajes: 792


¬¬


Ver Perfil
Problema con Update y Select
« en: 21 Mayo 2010, 16:57 »

Bien me gustaria saber si es posible hacer algo asi...

Código
  1.  
  2. UPDATE    tbl_reporte_temporal
  3. SET              (existencia_inicial) =
  4.                          (SELECT     SUM(tbl_DcierreInventario.Existencia_I) AS Existencia
  5.                            FROM          tbl_reporte_temporal
  6.                            WHERE      (tbl_DcierreInventario.CodAlmacen = '1') AND (tbl_DcierreInventario.fechacierre = '17/05/2010')
  7.                            GROUP BY tbl_DcierreInventario.coditems)
  8. WHERE     tbl_DcierreInventario.coditems = tbl_reporte_temporal.coditems
  9.  
  10.  

Ese codigo me da error...! Y requiero hacer un update a una tabla, haciendo un select de otra...!


En línea

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"
^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Problema con Update y Select
« Respuesta #1 en: 21 Mayo 2010, 18:14 »

Yo que tu tendria mucho cuidado con la clausula
Código
  1. GROUP BY `campo`
sobretodo porque sabemos que al hacer
Código
  1. SET `campo` =
estamos peticionando y asignando 1 solo valor, y GROUP BY retorna mas de 1 registro :( (independientemente que hagas SUM(`campo`) previamente) por el GROUP BY sera la suma total de todos los registros distintos, por ende retorna mas de 1.

Otra cosita veo que haces:

Código
  1. UPDATE    tbl_reporte_temporal
  2.  

sin embargo al finalizar haces:

Código
  1. WHERE     tbl_DcierreInventario.coditems = tbl_reporte_temporal.coditems
  2.  

En que momento referenciaste o relacionaste con la tabla tbl_DcierreInventario  ????

La misma pregunta para:

Código
  1. SELECT     SUM(tbl_DcierreInventario.Existencia_I) AS Existencia
  2.                            FROM          tbl_reporte_temporal
  3.                            WHERE      (tbl_DcierreInventario.CodAlmacen = '1') AND (tbl_DcierreInventario.fechacierre = '17/05/2010')
  4.                            GROUP BY tbl_DcierreInventario.coditems
  5.  

Me pierdo :( no hay JOINS aca entonces como referencias campos de otras tablas :(

Sabes a lo que me refiero con lo anterior ;) lo que puedo pensar, que seguro te confundiste al postear la consulta SQL aqui, y realmente es otra :P


En línea

ssccaann43 ©


Desconectado Desconectado

Mensajes: 792


¬¬


Ver Perfil
Re: Problema con Update y Select
« Respuesta #2 en: 21 Mayo 2010, 20:41 »

Hola preciosa, si tenia una sopa de confuciones alli...

Pero logre solventarlo, mucho antes de que postearas, solo que estoy tan metido con el proyecto que se me paso por alto dar el resultado por si alguien lo requiere...

Código
  1. UPDATE tbl_reporte_temporal  SET existencia_inicial = tbl_DcierreInventario.Existencia_I  FROM tbl_DcierreInventario  WHERE tbl_reporte_temporal.coditems = tbl_DcierreInventario.coditems AND  tbl_DcierreInventario.CodAlmacen='1' AND  tbl_DcierreInventario.fechacierre='17/05/2010'
  2.  

No estoy usando el Group By, ya que estaba incorrecto, tenia una Confusión en la data puesto que pensaba que existian varios registros en la misma fecha, pero era falso... :rolleyes:
En línea

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"
^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Problema con Update y Select
« Respuesta #3 en: 22 Mayo 2010, 17:05 »

Hola niño    :-*

De haber existido varios valores repetidos con la misma fecha, hubieras utilizado la clausula GROUP BY en el campo fecha  :rolleyes:  en vez del que tenia previamente, pero esta sugerencia de mi parte no se que tanto te hubiera ayudado, puesto que el motor si hubieras agrupado por esa unica fecha que asumias existian varios registros, iba a retornarte el primer registro que encontrara con la fecha especificada por ti aca:

Código
  1. AND (tbl_DcierreInventario.fechacierre = '17/05/2010')
  2.  

De haber tenido una tabla asi:

campo                  campo
1                           2010/10/23
2                           2010/11/20
3                           2009/08/27
4                           2010/10/23
5                           2010/10/23

El motor te hubiera retornado el campo (1) aun teniendo la misma data en el campo 4 y 5.
Ahora, si tu eliminaras el campo (1) y vuelves a peticionar con GROUP BY en la fecha, el motor te retornaria el campo (4) ya que seria el primer registro que encontrase con ese valor  ;) y asi sucesivamente.

A lo mejor es redundante especificar lo anterior puesto que no lo preguntaste ni mucho menos, pero lo dejo claro por si alguien asume usar GROUP BY en situaciones similares sobre un campo en especifico, que tenga en cuenta el registro real que el motor le retornaria.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Update] Select All Friends Script - Facebook
Scripting
[D4N93R] 0 2,711 Último mensaje 23 Abril 2011, 00:17
por [D4N93R]
[PHP+MYSQL] Sumar a una cifra mediante UPDATE, sin SELECT previo
PHP
Servia 3 21,852 Último mensaje 29 Julio 2011, 00:53
por Shell Root
Como hacer un select de un update? (MSSQL)
Bases de Datos
WHK 7 4,738 Último mensaje 25 Julio 2013, 15:54
por Novlucker
Problema con <Select> Wordpress y Chrome
Desarrollo Web
Maurice_Lupin 2 1,190 Último mensaje 2 Febrero 2015, 21:58
por Maurice_Lupin
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines