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

consulta en sql

Estas en el tema de consulta en sql en el foro de Oracle en Foros del Web. Me gustaria saber con que metodo puedo solucionar este tipo de consulta. Necesito obtener el listado de autores, ordenados de forma descendente por el numero ...
  #1 (permalink)  
Antiguo 26/08/2009, 12:25
 
Fecha de Ingreso: agosto-2009
Mensajes: 10
Antigüedad: 14 años, 7 meses
Puntos: 0
consulta en sql

Me gustaria saber con que metodo puedo solucionar este tipo de consulta.
Necesito obtener el listado de autores, ordenados de forma descendente por el numero de comentario que han realizado.
Podria ser con una vista? y luego la select, o con una subconsulta?
Como puedo hacerla?
Estoy bloqueada y llevo tiempo comiendome la cabeza y no me sale aver si alguien podria exarme un cable.
Gracias y un saludo gente!
  #2 (permalink)  
Antiguo 26/08/2009, 12:35
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: consulta en sql

Como no das mucha información, te recomiendo hacerlo con anidación de tablas. haciendo uso de sentencias join. Con subconsultas es otra opción pero puede ser menos eficiente.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 26/08/2009, 12:46
 
Fecha de Ingreso: agosto-2009
Mensajes: 10
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: consulta en sql

Mira tengo dos tablas la de autor con su codigo de autor y nombre, apellidos, etc. y luego tngo la tabla comentario que tiene el codigo del comentario el codigo del autor que ha echo el comentario y luego el codigo de la entrada,para que entrada a sido el comentario. apartir de aii necesito sumar el total de comentarios que tiene ese autor y mostrarlo, todos juntos por ejemplo:
Julia__10
Paco__8
Andrea__2

Espero averlo aclarado mas, saludos!
  #4 (permalink)  
Antiguo 26/08/2009, 12:49
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: consulta en sql

Código sql:
Ver original
  1. SELECT autor,nombre,apellidos,COUNT(c.comentarios) suma FROM autor a
  2. INNER JOIN comentarios c
  3. ON a.cod=c.cod GROUP BY autor,nombre,apellidos;

No la he probado

He editado la función sum por la función count.
Utiliza los campos de tu tabla real.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Última edición por huesos52; 26/08/2009 a las 13:10
  #5 (permalink)  
Antiguo 26/08/2009, 13:29
 
Fecha de Ingreso: agosto-2009
Mensajes: 10
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: consulta en sql

Acabado de adaptarla y la e probado y me da un error, aver si sabes que le pasa porque yo no

SELECT codigoautor,nombre,ape1,count(c.codigocomen) suma
FROM autor aut
INNER JOIN comentario c
ON aut.codigoautor = c.codigocomen
GROUP BY codigoautor;
En el codigo del autor de la ultima linea del group by me dice:
ORA-00918: columna definida de forma ambigua
  #6 (permalink)  
Antiguo 26/08/2009, 13:32
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: consulta en sql

El error es claro. Estas llamando un campo que tiene el mismo nombre en las dos tablas. Debes diferenciar los campos. Me imagino que debe ser así.

Código sql:
Ver original
  1. SELECT aut.codigoautor,nombre,ape1,COUNT(c.codigocomen) suma
  2. FROM autor aut
  3. INNER JOIN comentario c
  4. ON aut.codigoautor = c.codigoautor
  5. GROUP BY aut.codigoautor,nombre,ape1;
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 26/08/2009, 13:43
 
Fecha de Ingreso: agosto-2009
Mensajes: 10
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: consulta en sql

Tenias toda la razon del mundo, no habia caido muchas gracias!
Ahora la consulta se ejecuta pero no me devuelve nada, no hay datos para devolver y si que los ahii porque yo misma los he introducido, esto significa que algo debe estar mal hecho no?
  #8 (permalink)  
Antiguo 26/08/2009, 14:03
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: consulta en sql

O te estoy entendiendo mal, o estas haciendo algo mal.

Código sql:
Ver original
  1. SQL> SELECT *FROM autor;
  2.  
  3.     CODIGO NOMBRE     APELLIDOS
  4. ---------- ---------- ----------
  5.          1 daniel     orozco
  6.          2 diego      jaramillo
  7.          3 manuela    mejia
  8.          4 jj         arias
  9.  
  10. SQL> SELECT *FROM comentarios;
  11.  
  12.         ID   ID_AUTOR
  13. ---------- ----------
  14.          1          1
  15.          2          1
  16.          3          1
  17.          4          2
  18.          5          3
  19.          6          3
  20.  
  21. 6 filas seleccionadas.
  22. SQL> SELECT codigo,nombre,apellidos,COUNT(c.id) suma FROM autor a
  23.    INNER JOIN comentarios c
  24.    ON a.codigo=c.id_autor GROUP BY codigo,nombre,apellidos;  2    3  
  25.  
  26.     CODIGO NOMBRE     APELLIDOS        SUMA
  27. ---------- ---------- ---------- ----------
  28.          1 daniel     orozco              3
  29.          2 diego      jaramillo           1
  30.          3 manuela    mejia               2
  31.  
  32. SQL>

Aca se cuentan los comentarios hechos por cada autor.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #9 (permalink)  
Antiguo 27/08/2009, 09:47
 
Fecha de Ingreso: agosto-2009
Mensajes: 10
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: consulta en sql

Si si exactamente es eso lo q necesito, pero lo pruebo y no me devuelve ningun valor no entiendo nada
Tengo comentarios en la tabla y autores en la tabla de autor. Estoy utilizando el toad for oracle y no se porque me da que no funciona bien porque deberia mostrarme datos la consulta...
tu cual utilizas? me podrias recomendar otra?

Gracias y un saludo!
  #10 (permalink)  
Antiguo 27/08/2009, 09:52
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: consulta en sql

India123 realizo las consultas directamente desde la consola. Pero la verdad, no creo uqe el problema lo tenga el toad. Te muestra algún error?

Estoy casi seguro que no estas implementando bien la consulta o no tienes datos.
Revisa detalladamente el proceso mostrado en el post anterior.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #11 (permalink)  
Antiguo 27/08/2009, 10:19
 
Fecha de Ingreso: agosto-2009
Mensajes: 10
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: consulta en sql

La consulta es esta la que ejecuto y no me da ningun error.
SELECT aut.codigoautor, aut.nombre, aut.ape1, count(c.codigocomen) suma
FROM autor aut INNER JOIN comentario c
ON aut.codigoautor = c.codigoautor
GROUP BY aut.codigoautor,nombre,ape1;

Desde linea de comandos intento conectarme a la sesion y me da el siguiente error:
ORA-01017: invalid username/password; logon denied
esto es que hay algun problema en la base de datos con el usuario?
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 13:24.