13/05/2008, 09:17
|
| | Fecha de Ingreso: abril-2008
Mensajes: 82
Antigüedad: 16 años, 7 meses Puntos: 0 | |
Re: Select Con Grupos¿? claro perdon por no ser tan clara.
Como ya habia mencionado antes en lo que estoy trabajando es en un reporte, el cual tedria que estar clasificado y cada clasificacion tienen que estar dividido por productos.
Tampoco se si deba postear aqui mi duda que por lo que veoe s algo confusa o imposible de hacer si no es aqui donde debo postearla les pido la muevan al lugar indicado o foro adecuado, lo escribo aqui por que pienso que talvez desde postgres se pueda hacer ya que en el reporteador no he podido.
Esta es mi tabla de donde saco la informacion.
CREATE TABLE ventasg
(
ventasg_id numeric(10) NOT NULL,
car numeric(190) NOT NULL,
cantidadc numeric(14,3),
totali numeric(14,3),
preciou numeric(14,3),
cliente_id numeric(10) NOT NULL,
tproducto_id numeric(10) NOT NULL,
sucursal_id numeric(10) NOT NULL,
vehiculo_id numeric(10) NOT NULL,
inicial integer,
final integer,
CONSTRAINT ventasg_pkey PRIMARY KEY (ventasg_id),
CONSTRAINT ventasg_cliente_id_fkey FOREIGN KEY (cliente_id)
REFERENCES cliente (cliente_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT ventasg_tproducto_id_fkey FOREIGN KEY (tproducto_id)
REFERENCES tproducto (tproducto_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT ventasg_sucursal_id_fkey FOREIGN KEY (sucursal_id)
REFERENCES sucursal (sucursal_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT ventasg_vehiculo_id_fkey FOREIGN KEY (vehiculo_id)
REFERENCES vehiculo (vehiculo_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
Esta es mi tabla de donde saco toda mi informacion el select que tengo ene stos momentos solo funciona para mi primer clasificacion y dentro de esa clasificacion tiene la division por producto esto ya en el reporte.
SELECT C.NOMBRE AS CLIENTE,CAR,V.VEHICULO_ID AS VEHICULO,v.inicial,v.final,VH.PLACAS,
(INICIAL-FINAL)AS M,
((INICIAL-FINAL)/CANTIDADC) AS KL,
CANTIDADC,TOTALI AS IMPORTE,TP.NOMBRE AS TPRODUCTO,
(CASE WHEN TP.NOMBRE='PA' THEN 'PRODUCTOA' ELSE '' END) AS GRUPOA,
(CASE WHEN TP.NOMBRE='PB' THEN 'PRODUCTOB' ELSE '' END) AS GRUPOB,
(CASE WHEN TP.NOMBRE='PC' THEN 'PRODUCTOC' ELSE '' END) AS GRUPOC,
(CASE WHEN INICIAL != FINAL THEN '1.-CLASIFICACION1' ELSE '' END) AS C1,
(CASE WHEN INICIAL=FINAL THEN '2.-CLASIFICACION2' ELSE ''END ) AS C2,
(CASE WHEN INICIAL & FINAL=0 THEN ' 3.-CLASIFICACION3' ELSE '' END )AS C3
FROM VENTASG V
LEFT JOIN VEHICULO VH ON V.VEHICULO_ID=VH.VEHICULO_ID
LEFT JOIN TPRODUCTO TP ON V.TPRODUCTO_ID=TP.TPRODUCTO_ID
LEFT JOIN CLIENTE C ON V.CLIENTE_ID=C.CLIENTE_ID
WHERE INICIAL!= FINAL (NOTESE QUE FUNCIONA PARA UNA CLASIICACION POR ESTA CONDICION FINAL)
ORDER BY TPRODUCTO
Y ESTA ES AL SALIDA QUE QUIERO:
************************************************** ************************
.- C1 (ESTA PUEDE SER UNA ETIQUETA PERO SOLO PUEDE APARECER CUANDO SEA CUMPLA EL CASO)
PRODUCTOA
.........................etc.
..........................
.............................(registros dentro de ese producto y en c1)
PRODUCTOB
..............................(solo un renglon)
PRODUCTOC
.................................
............................................(2row)
2.- C2
PRODUCTOA
.............................(registros dentro del producto y en c2)
PRODUCTOB
..............................(solo un renglon)
PRODUCTOC
.................................
....................................
......................................(3row)
3.- C3
PRODUCTOA
.........................etc.
PRODUCTOB
..............................(solo un renglon)
PRODUCTOC
(0 row)
Bueno espero y me explique un poco mas cualquier duda estoy a sus ordenes y muchas gracia spor el iteres.
Si creen que lo que quiero hacer debe hacerse desde el reproteador les agradeceria me indicaran el foro para ponerlo.
Saludos. |