Mostrar una consulta en varios campos. Ayuda Hola a todos. Estoy tratando de introducir datos referentes a los gastos de unos determinados cursos. Lo estoy haciendo a través de una tabla en un subformulario dentro de un formulario del curso. En la tabla, introduzco el concepto, el tipo (desplazamiento, parkings, comida, alojamiento, y varios), fecha y la cantidad. Hasta aquí bien, lo que no se cómo hacer es para que pulsando un botón me saque otro formulario resumen o un informe, en el que me saque la suma de los desplazamientos de ese curso en un campo, la de las comidas en otro, ...etc... Es decir: Total de comidas: "tanto" Total de parkings: "tanto .... Alguien me puede echar una mano? Gracias. |
Respuesta: Mostrar una consulta en varios campos. Ayuda A nadie se le ocurre nada? Gracias. |
Respuesta: Mostrar una consulta en varios campos. Ayuda Cita:
1) Los formularios no son tema de Bases de Datos sino de programación de aplicaciones. Es decir que estás posteando la pregunta en el foro equivocado, ya que aquí las normas del foro no permiten resolver problemas ajenos a Bases de Datos (función de la sección Bases de Datos). Tienes que postear este asunto en el foro de tu lenguaje. 2) La consulta que puede devolverte un resumen de este tipo, si es asunto de BBDD, pero para poder darte una sintaxis mas o menos correcta deberías postear la estructura de las tablas relacionadas, a fin de darte algo menos genérico. Con la info que das, solamente te puedo decir que para obtener ese listado detallado y discriminado por gastos lo que tienes que hacer es usar SUM() sobre los gastos y agrupar (GROUP BY) por tipo de gasto. Pero para darte un mejor ejemplo preferiría esperar que postees la estructura que te digo. |
Respuesta: Mostrar una consulta en varios campos. Ayuda Hola a todos. Gracias por tu respuesta gnzsoloyo. Acabo de poner esto para la consulta: Código: SELECT Ofertas_Cursos.nom_curso, Ofertas_Cursos.nom_cliente, Ofertas_Cursos.codigo, Ofertas_Cursos.provincia_curso, Ofertas_Cursos.fecha_inicio_curso, Ofertas_Cursos.fecha_fin_curso, gastos_curso.tipo, gastos_curso.concepto, gastos_curso.fecha, Sum(gastos_curso.cantidad) AS SumaDecantidad Cita:
Gracias. |
Respuesta: Mostrar una consulta en varios campos. Ayuda El error está dado por el DBMS que estás usando. Motores como Oracle, SQL Server, DB2, etc., exigen que todos los campos declarados en el SELECT y que no estén siendo usados con funciones agregadas, deben estar forzosamente en el GROUP BY. En tu caso:
Código SQL:
Ver original Como puedes apreciar, estas poniendo sólo el tipo de gasto, cuando en realidad debería ir:
Código SQL:
La sentencia, tal como la planteas, es válida en MySQL, SQLite, y no sé si en Postgre, pero no en los otros mencionados.Ver original No son errores precisamente, sino es la forma que los DBMS implementan SQL. |
Respuesta: Mostrar una consulta en varios campos. Ayuda Pues no termina de salir. He puesto lo que me has dicho: Código: SELECT O.nom_curso, O.nom_cliente, O.codigo, O.provincia_curso, O.fecha_inicio_curso, O.fecha_fin_curso, G.tipo, G.concepto, G.fecha, Sum(G.cantidad) AS SumaDecantidad En la tabla de ejemplo tengo dos entradas de gastos de tipo aparcamiento y una de comida y me saca las tres entradas, cuando lo que busco es la suma de los 2 de tipo aparcamiento. ¿Como lo arreglo? |
Respuesta: Mostrar una consulta en varios campos. Ayuda El problema es que no estás discriminando cuáles tipos son los que debes sumar. Es decir: No estás poniendo el WHERE que permita esa restricción. Si, por ejemplo, los dos tipos de aparcamiento (supongo que es lo que en mi país se denomina estacionamiento) fuesen los tipogasto 1 y 2; entonces lo que debes hacer es establecer que solamente sume esos casos y no el 3 (comida, supongamos):
Código SQL:
En el caso de querer solamente la suma total de aparcamientos sin discriminación de tipo, habría que eliminar del SELECT y del GROUP BY aquellos campos que discriminan los tipos: Ver original
Código SQL:
Un detalle final: La fecha del gasto es irrelevante si lo que quieres el total del concepto, y lo único que hará es que se agreguen subtotales.Ver original Finalmente: Hay una forma para obtener el total y los subtotales, pero para poder orientarte debería saber qué DBMS estás usando (cosa que no has mencionado) |
Respuesta: Mostrar una consulta en varios campos. Ayuda Ups! vaya, creía que lo había puesto al principio, habrá sido en la otra cuestión que tengo planteada en el foro. Lo estoy haciendo en ACCESS 2007 y sigue sin salir: Código: SELECT O.nom_curso, O.nom_cliente, O.codigo, O.provincia_curso, O.fecha_inicio_curso, O.fecha_fin_curso, G.tipo, G.concepto, Sum(G.cantidad) AS SumaDecantidad Cita:
|
Respuesta: Mostrar una consulta en varios campos. Ayuda AGGGHHH. :borracho: :borracho: :borracho: Eso no es un DBMS, apenas es un manejador de tablas con intérprete de SQL agregado. Las capacidades de Access en cuanto a SQL son limitadas, y hay que ver si la forma de consulta que yo te propongo (y que aceptan SQL Server, Oracle, DB2, MySQL, Postgre, Firebird, etc.) es compatible con ese intérprete. El punto para resolver este dilema es saber si puede Access puede resolver condicionales del tipo propuesto (x IN (lista_de_valores))... Verifica en el manual directamente. |
Respuesta: Mostrar una consulta en varios campos. Ayuda Ya, ya se que el ACCESS no vale un duro (aunque la version 2007 la han mejorado bastante) pero tenía que ser en ACCESS. Echaré un vstazo al manual a ver si saco algo en claro, pero creo que no hay problema en ACCESS para usar esa sentencia. De todas formas me suena rara. ¿Puedes explicarme que haces exactamente con la sentencia?: Código: WHERE G.codigo IN (1,2) "PLA47190109AL" y no veo claro lo de IN (1,2) |
Respuesta: Mostrar una consulta en varios campos. Ayuda En los DBMS, la cláusula IN() compara un campo dado con una lista de valores que pueden ser o valores separados por comas o bien el resultado de una subconsulta. En el segundo caso, la subconsulta sólo debe devolver una única columna. Es uno de los modos más rapidos para resolver selecciones simples de valores. |
Respuesta: Mostrar una consulta en varios campos. Ayuda No se si lo entiendo, entonces con Código: WHERE G.codigo IN (1,2) Pues ese debe ser el fallo no? el código nunca será ese valor. será del tipo "ttbt14210909SE" En todo caso debería ser WHERE G.codigo = O.codigo no? Para que coincidan los gastos con el curso en cuestión no? No se, no lo entiendo bien. |
Respuesta: Mostrar una consulta en varios campos. Ayuda Eso dependerá de la forma de codificar los gastos que tu hayas elegido. Lo que me preguntaste es para qué servía el IN() y yo te respondí, y te dije en qué contextos y para qué se usa. Fíjate si te sirve y adaptalo tu mismo a tus necesidades. Por mi parte creo que te puede ser útil si Access lo interpreta bien, cosa que debes verificar en el manual. |
Respuesta: Mostrar una consulta en varios campos. Ayuda Muchísimas gracias por tu ayuda, aunque al final no lo he resuelto así, no me salía lo que yo quería, así que me he ido a lo sencillo y lo saco mediante un informe, agrupando por el tipo de gasto y calculándole el total a cada grupo. Gracias. |
La zona horaria es GMT -6. Ahora son las 00:32. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2024, Jelsoft Enterprises Ltd.