Reportes + sql
Hola ...
Te escribo por que tengo dudas sobre un reporte que no logro realizar:
Cuento con tablas como clientes(id_cliente,nbre_cliente,ape_cliente); pedido(id_pedido,fecha_ped, id_cliente,efectivo,cheque,nota_cred); linea_pedido(id_linea,id_pedido,id_art,cantidad);articulo(id_art,descrip_art)
Necesito realizar un informe de los mejores clientes y que artículos compran..
Yo estoy realizando esta aplicación en 3 capas.
Uso cursores para devolver los datos pero no logro la combinación de todos o al menos no se ve eso en el informe.
El informe tiene que ser:
id_cliente ape_cliente nbre_cliente
id_art desc_art (todos los articulos que haya comprado sin que se repitan)
quizas este haciendo algo mal en el diseño del formulario pero no me doy cuenta que..
ni se como seleccionar por ejemplo que solo se muestren los 10 mejores clientes.
espero puedas ayudarme ..igual muchas gracias.
Este es un pedacito del código que estoy haciendo:
SELECT pedido.id_pedido,pedido.fecha_ped,pedido.id_cliente,SUM(pedido.efectivo+pedido.cheque+pedido.nota_c)tot,cliente.ape_cliente,cliente.nbre_cliente,linea_pedido.id_art,articulo.descrip_art;
FROM pedido,linea_pedido,articulo,cliente;
WHERE CTOD(TTOC(pedido.fecha_ped)) between CTOD(fdes) AND CTOD(fhas) AND pedido.id_pedido=linea_pedido.id_pedido AND pedido.id_cliente = cliente.id_cliente AND linea_pedido.id_art = articulo.id_art;
GROUP BY pedido.id_pedido,pedido.fecha_ped,pedido.id_cliente,pedido.efectivo,pedido.cheque,pedido.nota_c,cliente.ape_cliente,cliente.nbre_cliente,linea_pedido.id_art,articulo.descrip_art;
ORDER BY pedido.id_cliente,pedido.id_pedido,tot DESC INTO CURSOR crAux
SELECT crAux.id_cliente,SUM(crAux.tot)total,crAux.nbre_cliente,crAux.ape_cliente;
FROM crAux;
GROUP BY crAux.id_cliente,crAux.nbre_cliente,crAux.ape_cliente;
ORDER BY crAux.id_cliente,total DESC INTO CURSOR crAux1
Saludos
laura
Te escribo por que tengo dudas sobre un reporte que no logro realizar:
Cuento con tablas como clientes(id_cliente,nbre_cliente,ape_cliente); pedido(id_pedido,fecha_ped, id_cliente,efectivo,cheque,nota_cred); linea_pedido(id_linea,id_pedido,id_art,cantidad);articulo(id_art,descrip_art)
Necesito realizar un informe de los mejores clientes y que artículos compran..
Yo estoy realizando esta aplicación en 3 capas.
Uso cursores para devolver los datos pero no logro la combinación de todos o al menos no se ve eso en el informe.
El informe tiene que ser:
id_cliente ape_cliente nbre_cliente
id_art desc_art (todos los articulos que haya comprado sin que se repitan)
quizas este haciendo algo mal en el diseño del formulario pero no me doy cuenta que..
ni se como seleccionar por ejemplo que solo se muestren los 10 mejores clientes.
espero puedas ayudarme ..igual muchas gracias.
Este es un pedacito del código que estoy haciendo:
SELECT pedido.id_pedido,pedido.fecha_ped,pedido.id_cliente,SUM(pedido.efectivo+pedido.cheque+pedido.nota_c)tot,cliente.ape_cliente,cliente.nbre_cliente,linea_pedido.id_art,articulo.descrip_art;
FROM pedido,linea_pedido,articulo,cliente;
WHERE CTOD(TTOC(pedido.fecha_ped)) between CTOD(fdes) AND CTOD(fhas) AND pedido.id_pedido=linea_pedido.id_pedido AND pedido.id_cliente = cliente.id_cliente AND linea_pedido.id_art = articulo.id_art;
GROUP BY pedido.id_pedido,pedido.fecha_ped,pedido.id_cliente,pedido.efectivo,pedido.cheque,pedido.nota_c,cliente.ape_cliente,cliente.nbre_cliente,linea_pedido.id_art,articulo.descrip_art;
ORDER BY pedido.id_cliente,pedido.id_pedido,tot DESC INTO CURSOR crAux
SELECT crAux.id_cliente,SUM(crAux.tot)total,crAux.nbre_cliente,crAux.ape_cliente;
FROM crAux;
GROUP BY crAux.id_cliente,crAux.nbre_cliente,crAux.ape_cliente;
ORDER BY crAux.id_cliente,total DESC INTO CURSOR crAux1
Saludos
laura
1 respuesta
Respuesta de davsoft
1