Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-05-2015
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: May 2007
Ubicación: Llagostera (Girona)
Posts: 569
Poder: 12
jafera Va por buen camino
Consulta update desde una consulta select

Buenas de nuevo.

Tengo la sigiente consulta sql:
Código SQL [-]
SELECT ANIO, ID_COLLA, SUM(PENALITZACIO) AS TOTAL_PEN FROM CAR0006
WHERE PENALITZACIO <> 0
GROUP BY ANIO, ID_COLLA
la cual me arroja el resultado esperado, ahora lo que necesitaria es realizar un update a otra tabla donde me coloque el valor de TOTAL_PEN si SELECT.ANIO = DESTINO.ANIO and SELECT.ID_COLLA = DESTINO.ID_COLLA

Algo como
Código SQL [-]
UPDATE CAR0006PEN SET TOTAL_PEN = (SELECT ANIO, ID_COLLA, SUM(PENALITZACIO) AS TOTAL_PEN FROM CAR0006 WHERE PENALITZACIO <> 0 GROUP BY ANIO, ID_COLLA) 
WHERE CAR0006SUM.ANIO = SELECT.ANIO AND CAR0006SUM.ID_COLLA = SELECT.ID_COLLA

No se si un update así es posible.

En la tabla destino CAR0006SUM la combinacion ID_COLLA, ANIO es unica, no se puede repetir este "array".

Gracias por vuestro tiempo.

Josep

Última edición por jafera fecha: 08-05-2015 a las 15:18:10.
Responder Con Cita
  #2  
Antiguo 08-05-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.327
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Código SQL [-]
UPDATE CAR0006PEN SET TOTAL_PEN = (SELECT ANIO, ID_COLLA, SUM(PENALITZACIO) AS TOTAL_PEN
Si haces el update de un campo, no puedes hacer el select de 3. ¿Cómo sabe la base de datos el campo que debe usar para el update?
Puedes hacerlo con un campo, algo así:
Código SQL [-]
update tabla set campo1= (select otrocampo from otra tabla ... )
Así el valor devuelto del select, se usa en el update.
Responder Con Cita
  #3  
Antiguo 08-05-2015
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: Jul 2005
Ubicación: Murcia (España)
Posts: 908
Poder: 14
ElDioni Va por buen camino
Yo lo haría con un while que fuera haciendo el UPDATE de año en año.

Código SQL [-]
UPDATE CAR0006PEN SET TOTAL_PEN = (SELECT SUM(PENALITZACIO) AS TOTAL_PEN WHERE ANIO=:year)

Saludos
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
  #4  
Antiguo 08-05-2015
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: May 2008
Ubicación: Bogotá
Posts: 506
Poder: 11
TOPX Va camino a la fama
Buenas.
Código SQL [-]
TRUNCATE TABLE CAR0006SUM;

INSERT INTO CAR0006SUM (ANIO, ID_COLLA, TOTAL_PEN) 
SELECT ANIO, ID_COLLA, SUM(PENALITZACIO) 
FROM CAR0006
WHERE PENALITZACIO <> 0
GROUP BY ANIO, ID_COLLA;
-
__________________
"constructive mind, destructive thoughts"
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Consulta Select con if giantonti Varios 7 14-04-2013 02:52:42
Consulta select con % edelphi SQL 23 07-05-2007 21:15:44
consulta update majosf Conexión con bases de datos 1 17-09-2005 15:09:04
Problema conuna consulta select...not in (select ...) VRO Firebird e Interbase 2 11-08-2005 08:56:35


La franja horaria es GMT +2. Ahora son las 02:19:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi