FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Porcentajes con SQL ¿?
Hola!
Estoy haciendo un programilla y uso Delphi 7 con Interbase 6.5. Me ha surgido la siguiente duda: Quiero obtener el porcentaje que supone la suma de unas cantidades respecto al total, y querría saber si es posible con SQL. Abajo os paso 2 sentencias: 1) PARA OBTENER EL TOTAL DE KGS PARA EL SOCIO NUM 4 select sum(lin_kgsnetos) as total from lineas_entrada where lin_socio=4 2) PARA OBTENER EL TOTAL DE KGS PARA UNA VARIEDAD PARA EL SOCIO 4 select sum(lin_kgsnetos) as total_gordo from lineas_entrada where lin_socio=4 and lin_variedad='GORDO' ¿Cómo podría obtener el porcentaje que supone el valor obtenido en el punto 2 respecto al total obtenido en el punto 1 usando la misma sentencia? Bye! |
#2
|
|||
|
|||
Eso lo puedes hacer
Eso lo puedes hacer en un SP
Weno por ahi es la idea je
__________________
saludos desde Puebla Mexico.. asanxt@hotmail.com "como siempre a sus ordenes y siempre con buena cara" 'lolita me excitas, perversa piel de melocotón' Última edición por sanxpue fecha: 18-05-2004 a las 21:11:05. |
#3
|
||||
|
||||
En una sola sentencia:
No funciona en todos los motores, pero estoy casi seguro que en IB 6.5 si. Si no, podes crear una vista con la sentencia sin el cálculo de porcentaje, y hacer un select sobre esta dividiendo los dos términos. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#4
|
|||
|
|||
Solucionado! Muchas gracias por vuestra ayuda
|
#5
|
||||
|
||||
Hola, revivo este hilo porque tengo una duda similar:
Supongamos que mi subconsulta es muy muy muy compleja. ¿habría otra forma de hacerlo?, es decir, sí podría realizarlo como recomiendan en este hilo. Pero lo que no quiero hacer es tener que ejecutar ese subconsulta dos veces (una para mostrar el valor y otra para calcular el porcentaje). ¿Alguna idea para evitar ejecutar la subconsulta dos veces ?
__________________
|
#6
|
||||
|
||||
Cita:
Si es eso... lamentablemente si uno desea hacerlo a través de sólo consultas SQL no se puede hacerlo de una simple pasada. Estos tipos de requisitos (como en este caso el porcentajes sobre el total) exigen dos pasadas.... Es a mi modo de ver... algo dificil (por no decir imposible) de un solo tirón. Una alternativa es llevar un registro de dicha información ya procesada. Es decir que puede que sea más conveniente llevar alguna tabla "auxiliar" en donde lleves cálculos parciales de aquellas operaciones complejas. De este modo puede que con simples consultas (a lo mejor un poco más complicada pero seguramente más sencillas que estar realizando anidamientos) a dicha tabla. Se que no te he dado la solución, pero al menos es una alternativa. Saludos, |
#7
|
||||
|
||||
Bueno, compañeros... eso depende de las capacidades del motor. Si es oracle, firebird 2.0 o SQL Server, podrías hacer esto, que suelen llamar inline views o tablas derivadas:
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
|
|