FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Como generar esto?
Hola a todos tengo el siguiente problema y la verdad no soy muy experto para SQL pero quiero ver si alguno conoce la manera de solucionar esto. Tratare de ser lo mas claro posible. Ahi va:
Debo de Generar un Reporte concentrado de Ventas por Poblacion. Para ello existe una tabla de poblaciones con los siguientes campos: Poblacion, NumClientes, TotalVentas, PorcentajeVentas, Unidade Vendidas.Y aparte existen tres tablas para generar los resultados. Una tabla es de clientes en ella esta un campo clave llamado NUM_CLI y demas campos para guardar sus datos personales. La otra tabla (CONTRATOS.DB) Tiene un campo NUMCONTRATO y NUM_CLI para crear una relacion q me permitiera crear campos LookUp en el IDE de Delphi para no redundar en la informacion de las dos tablas asi q solo construi algunos campos lookup para visualizar los datos del cliente en cada uno de los contratos relacionando ambas tablas con el campo NUM_CLI existente en ambas tablas pero sin existir esa informacion fisicamente en la tabla de contratos. Aparte la tercer tabla contiene los movimientos de cada uno de los contratos, para esto existe una relacion Master/Detail con el campo NUMCONTRATO ya q en un solo contrato se pueden comprar mas de un articulo. Hasta aqui todo bien pero ahora el problema es q debo de generar un reporte q me diga cuantos articulos vendi por cada municipio asi como el total de las ventas. El problema es q no puedo filtrar la tabla de contratos por Municipio ya q no existe en la tabla pues solo es un campo lookup que visualiza los datos del cliente q esta registrado en la otra tabla (CLIENTES). Se q es algo confuso pero les agradeceria me dieran guia de como solucionar esto. Si en algo no fui claro pues digan y tratare de esclarecerlo. Gracias de antemano. |
#2
|
||||
|
||||
Hola Nefy. Hubiese sido mejor que pusieras las tablas y sus campos en una lista, y no es esta forma, que se hace realmente dificil de leer.
Te recomiendo la lectura de un buen libro o tutorial de SQL, antes de enfrentar asuntos como este. Yo he entendido esto: Código:
Poblaciones ========== Poblacion Nombre Otros_estadisticos Cliente ============ id_Cliente Nombre Poblacion Otros_campos Contrato ============ id_Contrato id_cliente Otros_campos Detalle_contrato ============ id_Contrato Linea cantidad Valor_Total algo como: Código:
Select p.nombre, sum(dc.cod_articulo), sum(dc.valor_total) from Poblacion p inner join cliente c on p.poblacion = c.poblacion inner join contrato ct on ct.id_cliente = c.id_cliente inner join detalle_contrato dc on dc.id_contrato = ct.id_contrato group by p.nombre;
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
||||
|
||||
Ya lo logre y lo hice asi:
1.-Cronstrui una consulta de un municipio en àrticular pero utilizando una variable de texto para crear la consulta como un procedimiento y solo utilizar un ciclo para asignar el nombre de cada municipio q esta en la tabla de municipios. La consulta es la siguiente: SELECT DISTINCT Contratos.NCONTRATO, Contratos.VENDEDOR, Contratos.TOTAL, Contratos.OBSERVACIONES, Contratos.NUM, Contratos.FECHA, Clientes.RAZON_SOCIAL, Clientes.CONTRIBUYENTE, Clientes.GIRO, Clientes.RFC, Clientes.CALLE_NUM, Clientes.COLONIA, Clientes.MUNICIPIO, Clientes.CP, Clientes.CLASIFICACION, Clientes.FONO1, Clientes.FAX, Clientes.CORREO, Clientes.TRATO, Clientes.NOMBRE, Clientes.APELLIDOS FROM "c:\dtc\dbdtc\ventas\Contratos.DB" Contratos INNER JOIN "c:\dtc\dbdtc\ventas\Clientes.DB" Clientes ON (Contratos.NUM_CLI = Clientes.NUM_CLI) INNER JOIN "c:\dtc\dbdtc\ventas\Cont_mov.DB" Cont_mov ON (Cont_mov.NCONTRATO = Contratos.NCONTRATO) WHERE Clientes.MUNICIPIO = '+QuotedStr(Municipio); Ya con esta consulta solo hice un recordcount para saber el numero de contratos y una suma del campo Total de la tabla Contratos a fin de saber el total de ventas de dicho municipio. Para sacar el numero de articulos vendidos solo hice un join entre contratos y Mov_Contratos para recorrer la tabla de contratos y ir contando el numero de movimientos o articulos vedidos en dicho contrato. Pues ya estuvo gracias y si alguien tiene una duda de como lo hice pues pregunte. Gracias Jachguate. |
|
|
|