Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Query con error

Estas en el tema de Query con error en el foro de Mysql en Foros del Web. debo crear la siguiente vista en mysql pero no me funsiona me da un error que no logro entenderlo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original ...
  #1 (permalink)  
Antiguo 18/04/2016, 12:40
Avatar de Rodrigo_Arenas  
Fecha de Ingreso: junio-2011
Mensajes: 44
Antigüedad: 12 años, 10 meses
Puntos: 0
Query con error

debo crear la siguiente vista en mysql pero no me funsiona me da un error que no logro entenderlo
Código MySQL:
Ver original
  1. CREATE OR REPLACE  VIEW DGAC_TASK.VW_RESOL_GRAFICO_BARRAS (ID_MATERIA, MATERIA, TOTAL_MATERIA, LIBRO) AS
  2.   SELECT ID_MATERIA,MATERIA,TOTAL_MATERIA,LIBRO FROM
  3. RESOL_LISTA.MATERIA AS ID_MATERIA,
  4. RESOL_MATERIA.MATERIA AS MATERIA,
  5. COUNT(RESOL_LISTA.MATERIA) AS TOTAL_MATERIA,
  6. ID_EMISOR AS LIBRO
  7. FROM RESOL_LISTA
  8. INNER JOIN RESOL_MATERIA
  9. ON RESOL_MATERIA.ID_MATERIA = RESOL_LISTA.MATERIA
  10. GROUP BY RESOL_LISTA.MATERIA, RESOL_MATERIA.MATERIA, ID_EMISOR
  11. order by TOTAL_MATERIA DESC)
  12. WHERE ROWNUM <= 5;

el error que me da es el siguiente
MySQL Error Code: 1349. View's SELECT contains a subquery in the FROM clause

se que es por que estoy realizando una subconsulta y esto no lo permite pero podrian ayudarme a como deberia realizarlo correctamente ya que en oracle y postgressql funsiona bien pero en mysql no.

desde ya gracias por la ayuda y comentarios que me puedan servir y poder solucionar este dilema gracias

  #2 (permalink)  
Antiguo 18/04/2016, 12:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Query con error

MySQL no admite subconsultas el las VIEW, es así de simple: No las puedes usar.

El hecho de que Oracle o PosgreSQL las permitan es irrelevante. Cada uno define las limitaciones de sus objetos de la forma que quiere. No es ni bueno ni malo que uno las admita y otro no (Oracle no permite cosas en los CURSOR que MySQL si deja hacer, p.e.).

Simplemente tienes que diseñar la consulta base de otra forma...


Por otro lado, más alla del error que te marca, tienes otros errores adicionales, porque estás usando una sintaxis ajena a MySQL, con uso de funciones y propiedades que no existen en MySQL.
Cuando pasas de un DBMS a otro tienes que acudir al manual de referencia de ese DBMS y ver qué cosas existen y cuales no.

Probemos esto:
Código MySQL:
Ver original
  1. CREATE OR REPLACE VIEW DGAC_TASK.VW_RESOL_GRAFICO_BARRAS AS
  2.     SELECT
  3.         RESOL_LISTA.MATERIA ID_MATERIA,
  4.         RESOL_MATERIA.MATERIA MATERIA,
  5.         COUNT(RESOL_LISTA.MATERIA) TOTAL_MATERIA,
  6.         ID_EMISOR LIBRO
  7.     FROM
  8.         RESOL_LISTA
  9.             INNER JOIN
  10.         RESOL_MATERIA ON RESOL_MATERIA.ID_MATERIA = RESOL_LISTA.MATERIA
  11.     GROUP BY RESOL_LISTA.MATERIA , RESOL_MATERIA.MATERIA , ID_EMISOR
  12.     ORDER BY TOTAL_MATERIA
  13.     LIMIT 5;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 18/04/2016, 12:52
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Query con error

para empezar el rownum segun entiendo no es funcion de mysql, con ese valor que quieres obtener?? los primeros 5 renglones?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: join, query, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:04.