Hace mucho que no comento nada, y ésta vez es para mostrar otra consulta que tuve que hacer....
Necesitaba consultar los cobros que se hicieron y como se hicieron de todas las ventas, quedando la consulta de la siguiente foroma:
SELECT GVA12.ESTADO, GVA12.FECHA_EMIS, GVA12.N_COMP, GVA12.T_COMP,GVA12.IMPORTE, RECIBOS.N_COMP, RECIBOS.MENOR_F_FAC, DETALLE17.DIAS_PROM_CH, DETALLE1.CAJA, DETALLE2.BONIFPUB, DETALLE3.1, DETALLE4.IMP_SELLOS, DETALLE5.VISA, DETALLE6.DTO_PRONTO_PAGO, DETALLE7.2, DETALLE8.CTA_MOV, DETALLE9.3, DETALLE10.SUSS_RET, DETALLE11.CREDIMAS, DETALLE12.IG_RET, DETALLE13.4, DETALLE14.5, DETALLE15.AMERICAN_EXPRESS, DETALLE16.TICKETS_CANASTA, DETALLE17.VALORES_DEPOSITAR, DETALLE18.6, DETALLE19.ELECTRON, DETALLE20.7, DETALLE21.8, DETALLE22.CH_3_RECH, DETALLE23.MASTERCARD, DETALLE24.9, DETALLE25.DOC_A_COB, DETALLE26.9, DETALLE27.DGR_RET_ACS_ECS, DETALLE28.CAJA2, DETALLE29.CANJES, DETALLE30.10, DETALLE31.IVA_RETFROM (SELECT * FROM GVA12 WHERE T_COMP='REC') AS GVA12LEFT JOIN ( SELECT GVA07.N_COMP, DATOSREC.* FROM GVA12, GVA07, (SELECT MIN(FECHA_EMIS) AS MENOR_F_FAC, F_COMP_CAN, N_COMP_CAN, T_COMP_CAN FROM GVA07, GVA12 WHERE GVA07.N_COMP=GVA12.N_COMP AND T_COMP_CAN='REC' GROUP BY F_COMP_CAN, N_COMP_CAN, T_COMP_CAN ) AS DATOSREC WHERE GVA07.N_COMP_CAN=DATOSREC.N_COMP_CAN AND MENOR_F_FAC=GVA12.FECHA_EMIS AND GVA12.N_COMP=GVA07.N_COMP ) AS RECIBOSON GVA12.N_COMP=RECIBOS.N_COMP_CAN AND GVA12.T_COMP='REC' AND GVA12.ESTADO<>'ANU'
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS CAJA, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA=1 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE1
ON GVA12.N_COMP= DETALLE1.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS BONIFPUB, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA=50100 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE2
ON GVA12.N_COMP= DETALLE2.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS 1, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 27 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE3
ON GVA12.N_COMP= DETALLE3.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS IMP_SELLOS, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 50503 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE4
ON GVA12.N_COMP= DETALLE4.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS VISA, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 700 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE5
ON GVA12.N_COMP= DETALLE5.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS DTO_PRONTO_PAGO, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 50104 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE6
ON GVA12.N_COMP= DETALLE6.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS 2, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 22 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE7
ON GVA12.N_COMP= DETALLE7.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS CTA_MOV, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 2306 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE8
ON GVA12.N_COMP= DETALLE8.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS 3, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 28 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE9
ON GVA12.N_COMP= DETALLE9.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS SUSS_RET, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 3071 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE10
ON GVA12.N_COMP= DETALLE10.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS CREDIMAS, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 712 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE11
ON GVA12.N_COMP= DETALLE11.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS IG_RET, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 3000 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE12
ON GVA12.N_COMP= DETALLE12.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS 4, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 23 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE13
ON GVA12.N_COMP= DETALLE13.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS 5, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 29 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE14
ON GVA12.N_COMP= DETALLE14.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS AMERICAN_EXPRESS, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 701 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE15
ON GVA12.N_COMP= DETALLE15.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS TICKETS_CANASTA, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 2 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE16
ON GVA12.N_COMP= DETALLE16.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA14.IMPORTE_CH) AS VALORES_DEPOSITAR, AVG(DIAS) AS DIAS_PROM_CH, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01, SBA14 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 601 AND SBA05.N_COMP=SBA14.N_COMP_REC GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE17
ON GVA12.N_COMP= DETALLE17.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS 6, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 24 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE18
ON GVA12.N_COMP= DETALLE18.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS ELECTRON, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 707 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE19
ON GVA12.N_COMP= DETALLE19.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS 7, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 30 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE20
ON GVA12.N_COMP= DETALLE20.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS 8, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 25 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE21
ON GVA12.N_COMP= DETALLE21.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS CH_3_RECH, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 20911 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE22
ON GVA12.N_COMP= DETALLE22.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS MASTERCARD, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 702 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE23
ON GVA12.N_COMP= DETALLE23.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS 9, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 20 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE24
ON GVA12.N_COMP= DETALLE24.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS DOC_A_COB, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 602 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE25
ON GVA12.N_COMP= DETALLE25.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS 9, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 26 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE26
ON GVA12.N_COMP= DETALLE26.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS DGR_RET_ACS_ECS, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 3021 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE27
ON GVA12.N_COMP= DETALLE27.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS CAJA2, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 3 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE28
ON GVA12.N_COMP= DETALLE28.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS CANJES, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 10 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE29
ON GVA12.N_COMP= DETALLE29.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS 10, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 21 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE30
ON GVA12.N_COMP= DETALLE30.N_COMP
LEFT JOIN ( SELECT SBA05.N_COMP,SUM(SBA05.MONTO) AS IVA_RET, SBA01.COD_CTA, SBA01.DESCRIPCIO FROM SBA05, SBA01 WHERE COD_COMP='REC' AND SBA05.COD_CTA=SBA01.COD_CTA AND SBA05.D_H='D' AND SBA01.COD_CTA= 3051 GROUP BY N_COMP, SBA01.COD_CTA, DESCRIPCIO ) AS DETALLE31
ON GVA12.N_COMP= DETALLE31.N_COMP
Pongo la consulta con letra bastante para no ocupar tanto espacio, mi intención es solo mostrar el largo de la misma, hasta ahora es la consulta más complicada que me toco hacer, y como se puede ver, la más larga.
jueves, 6 de septiembre de 2007
viernes, 20 de julio de 2007
Otra consulta SQL
Asi es, estuve trabajando nuevamente con las comisiones de los cobradores, pero en este caso, migrando lo que habia hecho en PHP a JAVA, únicamentes para poder descartar a mi PC como servidora web.
A medida que lo estába haciendo me enfrenté a muchos problemas, (sera porque en mi vidad habia hecho algo en JAVA), al final logre aprender lo necesario y pude hacer el programa y sus reportes. Salvo uno, no viene al caso de que se trata solo pondre la consulta:
SELECT F.COD_VENDED, gva14fld.DESCRIP, gva14.RAZON_SOCI, F.N_COMP, F.FECHA_EMIS, F.IMPORTE, (F.IMPORTE-isNull(SUM(I.IMPORT_CAN),0)) AS DIF FROM GVA12 AS F LEFT JOIN GVA07 AS I ON (F.N_COMP=I.N_COMP_CAN), gva14, gva14fld, gva14itc WHERE F.COD_VENDED=$P{IDCOB} AND F.T_COMP='REC' AND F.FECHA_EMIS>=$P{DESDE} AND F.FECHA_EMIS<=$P{HASTA} AND ESTADO='CTA' AND GVA14.COD_CLIENT=F.COD_CLIENT AND F.COD_CLIENT=gva14itc.CODE AND gva14itc.IDFOLDER=gva14fld.IDFOLDER GROUP BY F.N_COMP, F.IMPORTE, F.FECHA_EMIS, F.COD_VENDED, gva14fld.DESCRIP, Gva14.RAZON_SOCI
pero no es todo mérito mio su realización, sino por el contrario, Luciano Garcia Bes me dio una mano muy importante explicándome como hacer el LEFT JOIN.
Gonzalo Rivero también me estaba dando una mano cuando lo puede solucionar.... igual Gracias por la intención :P
P.D: La imagen que puse es una captura de la pantalla del programa.
martes, 12 de junio de 2007
Camino al Trabajo
Me puse a jugar con el Google maps y se me ocurrio marcar el recorrido de ida al trabajo, sabia que tenía que cruzar toda la ciudad pero verlo en el mapa es un poco mas impresionante.
A pesar de la distancia, (comparado lo que tengo que viajar con otra gente de otras ciudades no es mucho) tardo en hacer el recorrido total en 35' aproximadamente.
A pesar de la distancia, (comparado lo que tengo que viajar con otra gente de otras ciudades no es mucho) tardo en hacer el recorrido total en 35' aproximadamente.
lunes, 11 de junio de 2007
Hogar dulce hogar!!!
Despues de casi 5 meses de Buscar departamento y tras varios intentos fallidos consegui uno. Es un departamento en la zona norte de mi ciudad (Salta-Argentina). Me mude el 1 de Junio y hoy 11 todavía tengo dos piesas con una pila de cajas sin acomodar que algún día se acomodaran y si no las tendré que acomodar yo :P.
lunes, 28 de mayo de 2007
Memorias DDR3???
Esto de la informática es algo complicado, cuando creo que tengo lo "último"[1] en algo te salen con otra cosa.
Hace poco me compre una PC[2] con memoria DDR2, pensaba.... "lo último", pero tenía que venir la gente de Samsung a aguarme la alegría con esto. Nunca voy a llegar, salvo que me gane la lotería o me vuelva millonario en poco tiempo :P
[1] Es una expresión de deseo, se que nunca voy a llegar a tener lo último, pero por lo menos tener algo moderno :P
[2] En otro post, cuento que PC me compre ;)
Hace poco me compre una PC[2] con memoria DDR2, pensaba.... "lo último", pero tenía que venir la gente de Samsung a aguarme la alegría con esto. Nunca voy a llegar, salvo que me gane la lotería o me vuelva millonario en poco tiempo :P
[1] Es una expresión de deseo, se que nunca voy a llegar a tener lo último, pero por lo menos tener algo moderno :P
[2] En otro post, cuento que PC me compre ;)
Suscribirse a:
Entradas (Atom)