elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  AYUDA CON OTRA CONSULTITA SQL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: AYUDA CON OTRA CONSULTITA SQL  (Leído 4,230 veces)
John_Salchichon

Desconectado Desconectado

Mensajes: 7


Ver Perfil
AYUDA CON OTRA CONSULTITA SQL
« en: 13 Junio 2011, 20:55 pm »

TABLAS:

Ciudades(nomCiu, habCiu, alcCiu)
Plantas(codPlan, nomPlan, dirPlan, tipoPlan, nomCiu)
Sectores(numSec, codPlan, dscSec, nivelSec, cntPerSec)
Generadores(codGen, dscGen, kwGen, fchInst, cicGen, cicUtilizGen, numSec, codPlan)

CONSULTA:

Mostrar los datos de las ciudades que tienen plantas que tienen sectores de nivel 3 y que no tienen generadores con capacidad de generación mayor al promedio de generación de todos los generadores de todas las plantas de la empresa.

Lo que hice:

Código:
SELECT C.ALCCIU, C.HABCIU, C.NOMCIU
      FROM CIUDADES C, PLANTAS P, SECTORES S, GENERADORES G
      WHERE C.NOMCIU = P.NOMCIU
      AND S.CODPLAN = G.CODPLAN
      AND S.NUMSEC = G.NUMSEC
      AND S.NIVELSEC = 3
      GROUP BY  C.ALCCIU, C.HABCIU, C.NOMCIU
      HAVING G.KWGEN >= (SELECT AVG(G.KWGEN)
                          FROM GENERADORES G
                          GROUP BY G.KWGEN);


Error:

Error en la línea de comandos:8 Columna:13
Informe de error:
Error SQL: ORA-00979: no es una expresión GROUP BY
00979. 00000 -  "not a GROUP BY expression"
*Cause:   
*Action:


Alguna idea? es la ultima que me queda :(


En línea

Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: AYUDA CON OTRA CONSULTITA SQL
« Respuesta #1 en: 14 Junio 2011, 08:25 am »

por que estas agrupando si simplemente estas sacando un promedio?


En línea

Ojo por ojo, y el mundo acabará ciego.
KuraraGNU

Desconectado Desconectado

Mensajes: 209



Ver Perfil
Re: AYUDA CON OTRA CONSULTITA SQL
« Respuesta #2 en: 14 Junio 2011, 14:31 pm »

Quizas porque estas agrupando por C.ALCCIU, C.HABCIU, C.NOMCIU y ahi no existe el campo G.KWGEN, tendrias que incluirlo CREO, porque el error te da en esa linea, en la linea 8.

Pero creo que con un inner join y con poner lo que has puesto en el having en el where lo tienes mas facil.

SELECT ALCCIU, HABCIU, NOMCIU
        FROM CIUDADES C INNER JOIN PLANTAS P ON C.NOMCIU = P.NOMCIU
                                    INNER JOIN SECTORES S ON CODPLAN=S.CODPLAN
                                    INNER JOIN GENERADORES G ON NUMSEC=S.NUMSEC
        WHERE NIVELSEC = 3
                    AND KWGEN >= (SELECT AVG(G.KWGEN)
                          FROM GENERADORES G
                          GROUP BY G.KWGEN);

Mira a ver si eso esta bien e.e
                   
En línea

John_Salchichon

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: AYUDA CON OTRA CONSULTITA SQL
« Respuesta #3 en: 14 Junio 2011, 21:01 pm »

Nakp: porque en oracle no se porque razon, si utilizas la funcion AVG debes agrupar obligatoriamente... no me preguntes porque

KuraraGNU:

no entiendo mucho el INNER JOIN pero la verdad q si.. no se para q use el HAVING si con un AND creo se puede...

no entiendo mucho lo del inner join, ademas me tira un error.. pero siguiendo tu idea lo q hice fue:


SELECT c.ALCCIU, c.HABCIU, c.NOMCIU
        FROM CIUDADES C, PLANTAS P, SECTORES S, GENERADORES G
        WHERE C.NOMCIU = P.NOMCIU
        AND S.CODPLAN = G.CODPLAN
        AND S.NUMSEC = G.NUMSEC
        AND S.NIVELSEC = 3
        AND KWGEN >= (SELECT AVG(G.KWGEN)
                      FROM GENERADORES G
                      GROUP BY G.KWGEN);

ahora no me tira mas error pero nunca me devuelve nada tampoco, chequeare a ver si es por los datos de prueba xD
En línea

KuraraGNU

Desconectado Desconectado

Mensajes: 209



Ver Perfil
Re: AYUDA CON OTRA CONSULTITA SQL
« Respuesta #4 en: 16 Junio 2011, 13:44 pm »

Nakp: porque en oracle no se porque razon, si utilizas la funcion AVG debes agrupar obligatoriamente... no me preguntes porque

Yo te lo explico si quieres, tienes que agrupar, porque tienes que decirle un rango en el cual hacer la media. La formula de la media es:
sumaDeDatos/NumeroDeDatos
Por ello al agrupar, le das a la funcion el parametro: NumeroDeDatos. Porque aunque tu lo veas muy claro en plan: pues su es la media de la columna A, pues nada mas que la pongo y ya esta, pues no, porque el programa lo que hace es recorrerlo campo a campo y no los cuenta, solo los muestra, a menos que le hagas un group by.

Quizas no me he explicado del todo bien, no estudie muy a fondo a programacion, soy del ciclo de sistemas y lo de la tabla de indices por ejemplo, no tengo ni idea, aunque insisti en que me lo enseniasen.

KuraraGNU:

no entiendo mucho el INNER JOIN pero la verdad q si.. no se para q use el HAVING si con un AND creo se puede...

no entiendo mucho lo del inner join, ademas me tira un error.. pero siguiendo tu idea lo q hice fue:


SELECT c.ALCCIU, c.HABCIU, c.NOMCIU
        FROM CIUDADES C, PLANTAS P, SECTORES S, GENERADORES G
        WHERE C.NOMCIU = P.NOMCIU
        AND S.CODPLAN = G.CODPLAN
        AND S.NUMSEC = G.NUMSEC
        AND S.NIVELSEC = 3
        AND KWGEN >= (SELECT AVG(G.KWGEN)
                      FROM GENERADORES G
                      GROUP BY G.KWGEN);

ahora no me tira mas error pero nunca me devuelve nada tampoco, chequeare a ver si es por los datos de prueba xD

Algo haria mal, yo es que me leo los errores y miro donde me he podido confundir.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como sacar otra toma de ono para otra tv?
Electrónica
davemirra 1 10,671 Último mensaje 19 Enero 2007, 20:59 pm
por ecri
una consultita
Programación Visual Basic
satan69 8 2,520 Último mensaje 2 Mayo 2007, 14:46 pm
por dimitrix
AYUDA CON UNA CONSULTITA SQL
Bases de Datos
John_Salchichon 7 3,656 Último mensaje 13 Junio 2011, 07:29 am
por John_Salchichon
Una consultita
Redes
galo1963 9 4,305 Último mensaje 8 Octubre 2018, 10:13 am
por chapo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines