![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
haber si esto soluciona:
SELECT A.MAXIMO,A.TOPELISTA,A.TOPEMAY,B.MINIMO,B.TOPELISTA,B.TOPEMAY FROM (SELECT MAX(TOPE),TOPELISTA,TOPEMAY FROM TuTabla WHERE ...) AS A INNER JOIN (SELECT MIN(TOPE),,TOPELISTA,TOPEMAY FROM TuTabla WHERE ...) AS B ON A.LLAVE=B.LLAVE{aqui pones un campo llave, pero no se la estructura completa de tu tabla...} WHERE CAJAS=44 AND GRUPO=CARTON Lo que hará el INNER JOIN será juntar las dos parciales a y b en un solo registro, pero deberas encontrar la coincidencia, es decir el campo que los pueda unir, si pudieses explicar un poquito mas el fin que tendra tu consulta, asi como un poquito mas de tu estructura de BD, podré ayudarte mejor... No puedo ser mas especifico porque incluso no se bien cual es el fin de la consulta, que es lo que va a mostrar en tu aplicación pero estamos pendientes...
__________________
I.S.C. Diódoro Guillermo Avilez Alanís Consultoria y Desarrollo de Tecnologías de Información TEL +52 8180 296184.
diodoro.avilez@takata.com |
#2
|
||||
|
||||
![]() Gracias de antemano por respondermer, pero no me funciono lo que dice...
WHERE CAJAS=44 AND GRUPO=CARTON Me marca Error en la Segundo "Select" Token unknown, la llave ya la puse va sería A.Marca=B.Marca Y como ya lo habia comentado el objetivo de esta consulta es de que me muestre el Máximo y el Mínimo valor del Campo TOPE en una sola consulta que a su vez me muestre los Campos TOPELISTA y TOPEMAY (que no van hacer por el Máximo ó Mínimo) Tengo la siguiente tabla como Ejemplo: TOPE ! TOPELISTA ! TOPEMAY ------------------------------- 11.50 ! 0.89 ! 0.74 11.66 ! 0.99 ! 0.78 11.80 ! 0.89 ! 0.78 11.84 ! 0.79 ! 0.68 Por lo que quiero que se me visualice asi en una sola consulta: TopeMax ! TopeLista ! TopeMay ! TopeMin ! TopeLista1 !TopeMay1 11.84 ! 0.79 ! 0.68 ! 11.50 ! 0.89 ! 0.74 Si redacte mal por favor digame... Gracias..... Última edición por __cadetill fecha: 03-09-2004 a las 10:04:47. |
#3
|
|||
|
|||
Antes de empezar con el rollo...... AGAG4, te he editado el mensaje para poner la etiqueta [ sql ] (sin espacios). Mírate el funcionamiento de ésta y otras leyendo el primer mensaje del cualquier foro.
Ahora, al grano: Veamos, lo que el amigo AGAG4 quiere, si no he entendido mal, es lo siguiente: Como vemos, se lanzan muuuchas subselect, por lo que, por mucho que diga el amigo Marc de poner/crear los índices adecuados ( ![]() Quizás con tablas pequeñas la diferencia sea poca, pero con tablas con muchos datos...... ![]() He realizado mis pruebas contra una tabla de más de 250 mil de registros en DB400 (DB2 para AS400) con las sentencias siguientes sentencias SQL SQL1 SQL2 SQL3 Con los siguientes resultados: SQL1: 1:57.213 SQL2: 0:07.411 SQL3: 0:10.175 Como véis, en el SQL1 he tenido que poner un distinct ya que esa subconsulta me devolvía más de un resultado. Por otro lado, también es cierto que con SQL1 tenemos exactamente lo que queremos, pero con un gran coste. Quizás mejor programar 4 lineas de código y reducir el coste de la consulta de forma drástica. Creo que hay una clara diferencia entre la cantidad de subselects y los demás métodos, siendo el más rápido el propuesto por el amigo scooterjgm. Lo que no he probado es lo del procedimiento almacenado, pero supongo que los tiempos serán por el estilo al SQL2 y SQL3 Pues nada, estas han sido las pruebas Espero que os sean de utilidad |
#4
|
||||
|
||||
Hola.
Aqui tienes el mismo resultado, aunque con solo dos subconsultas, por lo que el rendimiento tiene que ser óptimo.
Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#5
|
|||
|
|||
jejeje, pero esa consulta te funciona porque es IB/FB (si si, ya se que es el motor que tratamos), pero en otro motor no te funcionaría y se tendría que buscar un "truquillo" parecido a este para no tener que hacer la multitud de subselects
![]() |
#6
|
||||
|
||||
Hola.
Supongo que te refieres a la utilización de RDB$DATABASE. ![]() En realidad yo nunca la utilizo (ni tan solo con IB/FB), solo necesitamos utilizar una tabla con un único registro, y para ellos utilizo una tabla propia (la tabla CONFIG donde guardo un único registro de configuración). Utilizando una tabla propia con un solo registro, esa consulta funciona en cualquier servidor SQL, puesto que es SQL estándar. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#7
|
|||
|
|||
Cita:
Cita:
![]() ![]() (si si, pordía crearla ![]() Cita:
![]() |
![]() |
|
|
![]() |
|