Foros del Web » Programación para mayores de 30 ;) » Programación General »

Consulta SQL Ayuda

Estas en el tema de Consulta SQL Ayuda en el foro de Programación General en Foros del Web. hola que tal, ando bien perdido, y necesito ayuda, disculpen tal vez aqui no sea el foro, pero vi que responden consultas de sql, nuevamente ...
  #1 (permalink)  
Antiguo 10/05/2010, 08:28
 
Fecha de Ingreso: abril-2010
Ubicación: Mexico
Mensajes: 11
Antigüedad: 14 años
Puntos: 0
Consulta SQL Ayuda

hola que tal, ando bien perdido, y necesito ayuda,

disculpen tal vez aqui no sea el foro, pero vi que responden consultas de sql, nuevamente una disculpa enorme y pues espero no molestar por la ubicacion del post

mi duda es como podria hacer una consulta de tres tablas diferentes y que me pudiera sumar ejemplo

tabla1
id nombre dinero
1 cliente1 300
2 cliente2 600

tabla2
1 cliente3 200
2 cliente1 100

tabla3
1 cliente4 200
2 cliente1 300
3 cliente2 100

Lo que busco es hacer un concentrado de 3 tablas que solo van a tener el campo cliente y dinero en comun
y quisiera poderlos agrupar por cliente y me sumara el dinero y me informara en que tablas aparecen ejemplo

nombre dinero apareceen
cliente1 700 tabla 1 tabla 2 tabla 3
cliente2 700 tabla 1 tabla 3
cliente3 200 tabla 2
cliente4 200 tabla 4

Lo de "apare en" lo he logrado conseguir agregando una nueva columna con el nombre de la tabla y haciendo una concatenacion, pero si alguien tiene algo mejor es bienvenido.

pero mi problema real. es no se como agrupar los registros por nombre y que me sume el campo dinero si pertenecen a 3 tablas diferentes.


Muchas Gracias
  #2 (permalink)  
Antiguo 10/05/2010, 15:48
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta SQL Ayuda

con esto lo resuelves, lo de la tabla pues dices que eso si lo sacas je je je je

select t1.nombre,sum(t1.dinero) as dinero from(
select id,nombre,dinero from #temp1
union
select id,nombre,dinero from #temp2
union
select id,nombre,dinero from #temp3
) t1 group by t1.nombre

Saludos!!
  #3 (permalink)  
Antiguo 11/05/2010, 00:18
 
Fecha de Ingreso: abril-2010
Ubicación: Mexico
Mensajes: 11
Antigüedad: 14 años
Puntos: 0
Respuesta: Consulta SQL Ayuda

libras me funciono genial!! gracias, mmmmm ahi aprovechando la pregunta ... como con la funcion que me acabas de pasar como podria poner en una columna extra el nombre de la tabla donde lo estoy sacando?


ejemplo

select t1.nombre, sum(t1.dinero) as dinero, _aqui_nombre_tabla_



ya ves que es una consulta en 3 tablas, como podria saber ahi en que tablas salieron ejemplo

tabla1, tabla3
tabla1
tabla1, tabla2
tabla2


etc.


es posible hacer eso??


muchas gracias.
  #4 (permalink)  
Antiguo 11/05/2010, 09:08
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta SQL Ayuda

De que es posible si, solo que creo que hay que meter mas programacion por ejemplo un ciclo while y demas cosas, una pregunta, para que quieres esa informacion???

Saludos!!
  #5 (permalink)  
Antiguo 11/05/2010, 10:48
 
Fecha de Ingreso: abril-2010
Ubicación: Mexico
Mensajes: 11
Antigüedad: 14 años
Puntos: 0
Respuesta: Consulta SQL Ayuda

imaginate un catalogo de clientes en 3 periodos diferentes

ejemplo tengo la BD de

Enero, Febrero, Marzo

Sacar las Ventas de los 3 periodos y saber en donde hubo movimiento si nada mas Enero o Febrero o Marzo o Los Periodos Combinados Enero Febrero, etc.

gracias.
  #6 (permalink)  
Antiguo 11/05/2010, 11:36
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta SQL Ayuda

create table #suma(
id int identity,
nombre varchar(200),
dinero int
)

insert into #suma
select t1.nombre,sum(t1.dinero) as dinero from(
select id,nombre,dinero, 'tabla1' as tabla from #temp1
union
select id,nombre,dinero, 'tabla2' as tabla from #temp2
union
select id,nombre,dinero, 'tabla3' as tabla from #temp3
) t1
group by t1.nombre



create table #information
(
cliente varchar(200),
dinero int,
tablas varchar(200)
)

declare @x int
declare @y int
declare @total int
declare @cuantos int
declare @dinero int
declare @nombre varchar(200)
declare @table_name varchar(200)
declare @table varchar(200)

select @total=count(*) from #suma
set @x=1
set @y=1
while @x<=@total
begin
select @nombre=nombre, @dinero=dinero from #suma where id=@x


create table #table_name (
row_number int identity,
id int,
nombre varchar(200),
tabla varchar(200)
)
insert into #table_name (id,nombre,tabla)
select id,nombre, 'tabla1' as tabla from #temp1
where nombre=@nombre
union
select id,nombre, 'tabla2' as tabla from #temp2
where nombre=@nombre
union
select id,nombre,'tabla3' as tabla from #temp3
where nombre=@nombre
order by nombre

select @cuantos=count(*) from #table_name where nombre=@nombre

set @y=1
set @table_name=''
while @y<=@cuantos
begin
select @table=tabla from #table_name where nombre=@nombre and row_number=@y
set @table_name=@table_name + @table + ','
set @y=@y+1
end

drop table #table_name
insert into #information (cliente,dinero,tablas) values (@nombre,@dinero,@table_name)
set @x=@x+1
end

select * from #information


Con esta funcion obtienes lo que necesitas, prueba y me dices ;)

Saludos!!!
  #7 (permalink)  
Antiguo 11/05/2010, 13:17
 
Fecha de Ingreso: abril-2010
Ubicación: Mexico
Mensajes: 11
Antigüedad: 14 años
Puntos: 0
Respuesta: Consulta SQL Ayuda

muchas gracias libra por tomarte la molestia de ayudarme, lamentablemente creo que ese codigo no lo puedo usar, debido a que mi bd es access, no es tan completo, creeo que tu script es para mssql o mysql cierto??

el 1er codigo si me funciono genial, pero este no lo pude adaptar. =(

too sad
  #8 (permalink)  
Antiguo 11/05/2010, 14:18
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta SQL Ayuda

Acces wakala... creo que hay funciones que te hacen lo que necesitas, porque lo que quieres de que te diga de donde salen los datos pues si necesita un poco mas de complejidad, pero bueno un gusto haber ayudado :)

Etiquetas: sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:26.