lunes, 9 de abril de 2007

Topic Inauguracion

Bueno cree este blog principalmente por dos razones:

  • Ayudar a personas que anden buscando tips por internet.
  • Un motivo personal: Ayuda memoria :)
Trataré de ser lo más claro a la hora de explicar como se realizan las cosas.

Como estoy en el trabajo ahora, y casi siempre postearé desde aquí, comenzaré de inmediato:

"Consultas en Procedimientos Almacenados"

Tenía el siguiente problema:

Una tabla llamada _LineaProceso tenia referencia a dos tablas diferentes: _RecepcionGranel y _ProcesoFruta. Ambas tablas contenían información diferente pero relacionada, es decir, al ProcesoFruta llegaba Fruta proveniente desde la RecepcionGranel.

Entonces con el fin de poder separar esta informacion en la consutla SQL cree diferentes alias para la tabla _LineaProceso, cada uno de los cuales los ocupaba para sacar información relacionada con tablas diferentes.

A continuación dejo la consulta SQL final:

SELECT

PR.Nombre Productor
, RG.Guia
, RG.FechaLlegada FechaGuia
, sum(LPI.Neto) KilosRec
, sum(EP.Neto) KilosPro
, LPOE.Neto KilosExportacion
, LPOC.Neto KilosComercial

FROM _RecepcionGranel RG

LEFT OUTER JOIN _SocioNegocio PR on PR.IDSocioNegocio = RG.IDProductor
LEFT OUTER JOIN _LineaProceso LPI on LPI.IDRecepcionGranel = RG.IDRecepcionGranel
LEFT OUTER JOIN _EntradaProceso EP on EP.IDLineaOrigen = LPI.IDLineaProceso
LEFT OUTER JOIN _ProcesoFruta PF on PF.IDProcesoFruta = LPI.IDProcesoFruta
LEFT OUTER JOIN _LineaProceso LPOE on LPOE.IDProcesoFruta = EP.IDProcesoFruta
LEFT OUTER JOIN _LineaProceso LPOC on LPOC.IDProcesoFruta = EP.IDProcesoFruta

WHERE EP.IDProcesoFruta = 1 AND LPOE.IDTipoSalida = 1 AND LPOC.IDTipoSalida = 2

GROUP BY

PR.Nombre
, RG.Guia
, RG.FechaLlegada
, LPOE.Neto
, LPOC.Neto

No hay comentarios: