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

duda en consulta sql

Estas en el tema de duda en consulta sql en el foro de Mysql en Foros del Web. hola, tengo una duda y les agradeceria si me pudieran ayudar. Tengo el siguiente esquema: Fotografos( id_fotografo , nombre_fotografo) Reportajes( cod_reportaje ,precio_reportaje , fecha_realizacion , ...
  #1 (permalink)  
Antiguo 18/01/2011, 15:46
 
Fecha de Ingreso: noviembre-2010
Mensajes: 6
Antigüedad: 13 años, 5 meses
Puntos: 0
Pregunta duda en consulta sql

hola, tengo una duda y les agradeceria si me pudieran ayudar.

Tengo el siguiente esquema:
Fotografos( id_fotografo , nombre_fotografo)

Reportajes( cod_reportaje ,precio_reportaje , fecha_realizacion , id_fotografo )

Editoriales( cod_editorial , nombre_editorial )

Comprar( cod_editorial , cod_reportaje )

Exclusivas( cod_exclusiva , titulo_exclusiva , precio_exclusiva ,fecha_entrega , cod_editorial )

Solicitar( cod_exclusiva , fecha_solicitud , id_fotografo )


Necesito sacar el importe total a pagar a cada fotografo tanto por sus reportajes realizados como por sus exclusivas entregadas en noviembre de 2010.

Tengo esto:

select distinct f.id_fotografo,sum(r.precio_reportaje)
from fotografos f, reportajes r, comprar c
where (f.id_fotografo = r.id_fotografo) and
(r.cod_reportaje = c.cod_reportaje) and
(r.fecha_realizacion between '01-nov-10' and '30-nov-10')
group by f.id_fotografo
union
select distinct f.id_fotografo, sum(e.precio_exclusiva)
from fotografos f, exclusivas e, solicitar s
where (f.id_fotografo = s.id_fotografo) and
(s.cod_exclusiva = e.cod_exclusiva) and
(e.fecha_entrega between '01-nov-10' and '30-nov-10')
group by f.id_fotografo);

y me resulta:

ID_FOTOGRA SUM(R.PRECIO_REPORTAJE)
---------- -----------------------
gisviva 2000
gisviva 4000
patmeji 400
patmeji 1500
robmore 3000


y yo necesito que me salga :

ID_FOTOGRA SUM(R.PRECIO_REPORTAJE)
---------- -----------------------
gisviva 6000
patmeji 1900
robmore 3000

e intentado de varias maneras pero no lo logro, me he quedado con el resultado menos malo para ponerlo aqui.
  #2 (permalink)  
Antiguo 18/01/2011, 15:51
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: duda en consulta sql

Saludos

Prueba de la siguiente manera:

Código MySQL:
Ver original
  1. Select f.id_fotografo,sum(r.precio_reportaje)
  2. from fotografos f
  3. INNER JOIN reportajes r ON f.id_fotografo = r.id_fotografo
  4. INNER JOIN comprar c ON r.cod_reportaje = c.cod_reportaje
  5. where r.fecha_realizacion between '01-nov-10' and '30-nov-10'
  6. select f.id_fotografo, sum(e.precio_exclusiva)
  7. from fotografos f
  8. INNER JOIN solicitar s ON f.id_fotografo = s.id_fotografo
  9. INNER JOIN exclusivas e ON s.cod_exclusiva = e.cod_exclusiva
  10. where e.fecha_entrega between '01-nov-10' and '30-nov-10'
  11. group by f.id_fotografo;
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 18/01/2011, 16:07
 
Fecha de Ingreso: noviembre-2010
Mensajes: 6
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: duda en consulta sql

Muchas gracias, lo he intentado asi, pero sigo teniendo el mismo resultado
  #4 (permalink)  
Antiguo 18/01/2011, 16:09
 
Fecha de Ingreso: noviembre-2010
Mensajes: 6
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: duda en consulta sql

perdon, me da error:
ERROR at line 1:
ORA-00937: not a single-group group function

por eso añadi el group by f.id_fotografo al final de la 1era consulta y obtuve el mismo resultado
  #5 (permalink)  
Antiguo 18/01/2011, 16:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: duda en consulta sql

Cita:
Iniciado por gise1985 Ver Mensaje
perdon, me da error:
ERROR at line 1:
ORA-00937: not a single-group group function

por eso añadi el group by f.id_fotografo al final de la 1era consulta y obtuve el mismo resultado
ORA-00937 es un error de Oracle, y tu estás posteando en el foro de MySQL.
Si bien ambos cumplen ciertos estándares en sus consultas, hay diferencias de implementación en ciertas cláusulas, como en este caso.
Te conviene postear en el Foro de Oracle.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 18/01/2011, 16:37
 
Fecha de Ingreso: noviembre-2010
Mensajes: 6
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: duda en consulta sql

gracias, ahora lo cambio alli

Etiquetas: consulta, sql, sum
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 11:57.