Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-01-2008
silver46 silver46 is offline
Registrado
 
Registrado: ene 2008
Posts: 6
Poder: 0
silver46 Va por buen camino
Duda Consulta Sql Server...ayuda!!!

buenas. A ver si logro que se m entienda. Teng que realizar un trabajo cn SQL SERVER. una d las consultas que tengo que hacer me ha llevado a esta situacion:
realizo una UNION de dos tablas, que me deja algo asi:

TABLA 1

columna1 columna2
10 14
10 8
45 4
45 3
45 12
54 5
54 42
y querria obtener la suma de la columna 2 para cada elemento de la columna 1:

TABLA 2

columna1 columna2
10 22
45 19
54 47

lo he intentado hacer de esta forma, pero no m funciona:

SELECT columna1, sum(columna2)
FROM (la tabla 1, pongo directamente la union aqui)
GROUP BY columna1;

el caso es q me da error, y creo que es por poner la union de tablas en el FROM.alguien sabe si se podria solucionar???ya se que la pregunta tiene tela...
un saludo y gracias para el k konteste
Responder Con Cita
  #2  
Antiguo 09-01-2008
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Que tal,
Antes que nada bienvenido al club, te recomiendo que leas la guia de estilo.

intenta con esto

Código SQL [-]
SELECT COL1, sum(COL2)
FROM TABLA
GROUP BY COL1
ORDER BY COL2 // <-- opcional
Responder Con Cita
  #3  
Antiguo 09-01-2008
silver46 silver46 is offline
Registrado
 
Registrado: ene 2008
Posts: 6
Poder: 0
silver46 Va por buen camino
HOLA JUANELO, GRACIAS POR TU CONTESTACION.NO M FUNCIONA. MIRA TE DEJO AQUI LO QUE TENGO HECHO, APOYANDOSE EN LO PRIMERO QUE ESCRIBI EN EL POST.

SELECT Socio,Sum(BS)
FROM (SELECT Socio,COUNT(*) AS 'BS'
FROM alquila_b
GROUP BY Socio
UNION
SELECT Socio,COUNT(*) AS 'P'
FROM alquila_p
GROUP BY Socio)
GROUP BY Socio;

LA UNION POR SI SOLA SI ME FUNCIONA, EL PROBLEMA ES CUANDO LA INCORPORO A ESE FROM DE LA CONSULTA "MAS EXTERIOR". EL ERROR QUE M INDICA EL SQL SERVER ES ESTE:
Sintaxis incorrecta cerca de la palabra clave 'GROUP'.
QUIZAS DEBERÍA PLANTEAR EL PROBLEMA DE OTRA MANERA PARA SUMAR ENTRE SI LA SEGUNDA COLUMNA...
BUENO GRACIAS Y UN SALUDO.
Responder Con Cita
  #4  
Antiguo 09-01-2008
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Quiero ver si entendi bien, lo que quieres es sumar una columna de una tabla guiandote o tomando como pivote otra?
Responder Con Cita
  #5  
Antiguo 10-01-2008
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Por cierto, que manejador de base de datos usas?
Responder Con Cita
  #6  
Antiguo 10-01-2008
silver46 silver46 is offline
Registrado
 
Registrado: ene 2008
Posts: 6
Poder: 0
silver46 Va por buen camino
BUENO, MAS CONCRETAMENTE:
EL TRABAJO TRATA SOBRE UNA FILMOTECA. TENGO QUE OBTENER EL Nº DE ALQUILERES EN TOTAL POR CADA SOCIO, ES DECIR LOS ALQUILERES DE BANDAS SONORAS (TABLA alquila_b) MÁS LOS DE PELICULAS (TABLA alquila_p). ENTONCES YO PENSE EN CONTAR LOS ALQUILERES DE CADA TABLA POR SEPARADO (Nº ALQUILERES DE BS PARA CADA SOCIO, Y DE PELICULAS PARA CADA SOCIO) Y UNIRLAS CON UNION. AHI ES DONDE OBTENGO ESTO (tal cual lo muestro aqui)
Socio BS
10 14
10 8
45 4
45 12
54 5
54 42

Y AHORA, EMPLEANDO ESA TABLA PRETENDO SUMAR LOS ALQUILERES DE CADA SOCIO (14+8 PARA EL SOCIO 10, 4+12 PARA EL 45, ETC.)

LA VERDAD QUE NO SE COMO EXPLICARLO, ES COMPLICADO.YA ESTOY PROBANDO COSAS QUE NO TIENEN SENTIDO, QUE SEGURO QUE ES CON LO QUE TE HE CONFUNDIDO SEGURO JEJE
SALUDOS
Responder Con Cita
  #7  
Antiguo 10-01-2008
silver46 silver46 is offline
Registrado
 
Registrado: ene 2008
Posts: 6
Poder: 0
silver46 Va por buen camino
Cita:
Empezado por juanelo Ver Mensaje
Por cierto, que manejador de base de datos usas?
ES EL SQL SERVER 2005, MANAGEMENT STUDIO EXPRESS....
Responder Con Cita
  #8  
Antiguo 10-01-2008
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Lo que puedes hacer es una tabla temporal con el resultado intermedio que me inidicas:
Socio BS
10 14
10 8
45 4
45 12
54 5
54 42

De ahi, haces un simple query como el que te puse al principio
Código SQL [-]
SELECT COL1, sum(COL2)
FROM TABLA_TEMPORAL
GROUP BY COL1
ORDER BY COL2 // <-- opcional
Por ultimo cuando dejes de usar la tabla temporal la borras y listo.
Responder Con Cita
  #9  
Antiguo 10-01-2008
sinalocarlos sinalocarlos is offline
Miembro
 
Registrado: sep 2006
Posts: 152
Poder: 18
sinalocarlos Va por buen camino
podría compañero forista subir la estructura de las tablas que te generan la consulta que quieres resumir?
Responder Con Cita
  #10  
Antiguo 10-01-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Se me ocurre que puedes crear una Vista (View) con la UNION y luego realizar la consulta de la suma sobre la Vista.

El código de la vista sería algo así:
Código SQL [-]
SELECT     * FROM        Tabla1
UNION
SELECT     * FROM         Tabla2


Si a la vista le llamas Tabla3, para obetener el resultado que necesitas basta con:

Código SQL [-]
Select campo1, SUM(campo2) from Tabla3
Group BY campo1

Un saludo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #11  
Antiguo 10-01-2008
silver46 silver46 is offline
Registrado
 
Registrado: ene 2008
Posts: 6
Poder: 0
silver46 Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
Se me ocurre que puedes crear una Vista (View) con la UNION y luego realizar la consulta de la suma sobre la Vista.

El código de la vista sería algo así:
Código SQL [-]SELECT * FROM Tabla1
UNION SELECT * FROM Tabla2



Si a la vista le llamas Tabla3, para obetener el resultado que necesitas basta con:

Código SQL [-]Select campo1, SUM(campo2) from Tabla3
Group BY campo1


Un saludo.

SII!! MUCHAS GRACIAS NEFTALI, HE CREADO LA VISTA Y YA CON ESO VA PERFECTO.
MUCHAS GRACIAS A TODOS, SEGURO Q VUELVO A PREGUNTAR ALGO.
Responder Con Cita
  #12  
Antiguo 12-01-2008
silver46 silver46 is offline
Registrado
 
Registrado: ene 2008
Posts: 6
Poder: 0
silver46 Va por buen camino
Buenas De Nuevo...antes D Abrir Otro Hilo Para Una Nueva Pregunta, Lo Pongo Aqui A Ver Si Me Podeis Contestar. El Tema Es El Uso De Triggers Para Sql Server 2005, Conoceis Por Internet Algun Tutorial?? La Verdad Que No Encuentro Nada Que Me Convenza...
Saludos!
Responder Con Cita
  #13  
Antiguo 13-01-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Prueba con la ayuda de SQL Server para empezar.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta



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
Duda con Microsoft SQL Server Enterprise Manager... AFilth MS SQL Server 3 06-11-2007 17:08:45
Crear tabla en una BD en Server A desde consulta en tabla B en server B joaquinalberto MySQL 1 18-05-2007 10:39:27
Duda con consulta enecumene Conexión con bases de datos 2 07-03-2007 03:54:41
Duda sobre Sql server 2005 y sql server 2005 ErenioDhG SQL 1 25-08-2006 01:41:14
Duda en consulta SQL BlueSteel SQL 2 18-05-2005 23:22:27


La franja horaria es GMT +2. Ahora son las 21:40:35.


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