Intentar mejorar una consulta SQL

varuk

Buenas.

Quiero realizar esto, que ya tengo hecho aquí: http://pastebin.com/Ap6E74z1
Lo que pasa es que me ha salido un churro importante... pero no sé si tengo la cabeza ya que no me funciona... pero no veo otra forma de hacerlo más sencillo. Lo que he puesto ahí ( http://pastebin.com/Ap6E74z1 ) funciona.

Editoriales (codedi) que han adquirido reportajes y/o solicitado exclusivas de temas a los que no están suscritas y cuántos reportajes y/o exclusivas (num).

Es decir, sacar la tabla para que al final se queden en:

codedi | num


xxxx...... 2

Las tablas que tengo son las siguientes:

EDITORIAL (Las editoriales con su info, aunque a lo mejor esta ni debería usarse)

VENTAREPOR (Relación de editoriales que han comprado reportajes que hay disponibles en la tabla "Reportajes" )

SUSCRIPCIÓN (Son las editoriales que están suscritas a X temas)

REPORTAJE (Son los reportajes con su información: codigo de fotografo, fechas, etc... pero todo eso no importa, solamente hay que mirarel "codtem" (código del tema)

¿Alguna sugerencia? Vaya cacao llevo encima, he hecho miles pero esta se me atraganta mucho.

R3DKNIF3
select nvl(a.codedi, b.codedi) codedi, nvl(a.num,0) + nvl(b.num,0) num
from
     (select codedi, count(codrep) num
     from
     ventarepor
     group by codedi) a
     FULL JOIN
     (select codedi, count(coditem) num
     from
     suscripcion
     group by codedi) b
ON
     a.codedi = b.codedi

otra

select codedi, sum(num) from     
(select codedi, count(codrep) num from ventarepor group by codedi UNION ALL select codedi, count(coditem) num from suscripcion group by codedi) group by codedi

y otra xD

  select codedi, count(num) from
  (select codedi, codrep num from ventarepor
  UNION ALL
  select codedi, coditem num from suscripcion)
  group by codedi

Mira a ver si te srive esto, saludos!

Usuarios habituales

  • R3DKNIF3
  • varuk