Autor
|
Tema: agrupar resultados de tres tablas (Leído 3,204 veces)
|
vhugo_rf
Desconectado
Mensajes: 3
|
Hola, tengo una base de datos con tres tablas, y necesito el promedio de cada bloque, tengo la siguiente consulta, pero me pone todo como lista y lo necesito como tabla uno frente del otro, adjunto imagenes. SELECT bl.bloque as 'bloque', ROUND(avg(rp.respuesta) , 2 ) as 'promedio', rp.relacion as 'relacion' FROM respuestas rp inner join bloque bl on rp.id_bloque = bl.id_bloque inner join pregunta pr on rp.id_pregunta = pr.id_pregunta where rp.id_encuesta = 1 and rp.evaluado = 2 and rp.relacion in (select id_relacion from relacion) and pr.activa = 1 and pr.eliminada = 0 group by rp.relacion, rp.id_bloque; La consulta anterior arroja lo siguiente y necesito los datos así me pueden ayudar por favor, muchas gracias
|
|
|
En línea
|
|
|
|
1mpuls0
Desconectado
Mensajes: 1.186
|
Utiliza subconsultas.
Coloca el diseño exacto de tus tablas y te ayudo, junto con algunos datos de ejemplo.
|
|
|
En línea
|
abc
|
|
|
Nakatsukasa Itero
Desconectado
Mensajes: 22
Shark
|
en primera te sale así porque solo pides que te salgan 3 columnas bl.bloque as 'bloque', ROUND(avg(rp.respuesta) , 2 ) as 'promedio', rp.relacion as 'relacion' para que te salgan las otras 8 columnas debes de cambiar el código a algo parecido a esto bl.bloque as 'bloque', ROUND(avg(rp.respuesta) , 2 ) as 'promedio', rp.relacion as 'relacion' ROUND(avg(rp.respuesta) , 2 ) as 'promedio', rp.relacion as 'relacion' recuerda que te digo que parecido más no igual este es solo un ejemplo. la idea que me viene a la cabeza es que primero hagas una consulta para obtener solo los row (la parte de bloque) luego con una anidación en join (que ciertamente no lo uso, yo soy más abcc: altas bajas cambios consultas; pero más cimples sin taanta complicación sql) hacer la consulta que se tome el promedio y relación cuando bloque sea `bloque`, pero el problema sería en que las columnas se toman con solo x regustros, luego las siguientes columnas a partir de los registros que no fueron tomados en cuanta hasta los siguientes, es pues como hacer una segmentación de los registros que se tienen, en cuy caso si siempre son 15 columnas puedes hacer se que cuenten de x a y, luego de (y+1) a (y+1)+incremento y así pero es en la parte de "AS prom..."
|
|
|
En línea
|
Kanashimi no Itero
|
|
|
vhugo_rf
Desconectado
Mensajes: 3
|
Utiliza subconsultas.
Coloca el diseño exacto de tus tablas y te ayudo, junto con algunos datos de ejemplo.
Hola, pongo la estructura de mis tablas -- -- Estructura de tabla para la tabla `respuestas` --
CREATE TABLE IF NOT EXISTS `respuestas` ( `id_respuesta` int(11) NOT NULL AUTO_INCREMENT, `id_encuesta` int(11) NOT NULL, `id_bloque` int(11) NOT NULL, `id_pregunta` int(11) NOT NULL, `evaluado` int(11) NOT NULL, `relacion` int(11) NOT NULL, PRIMARY KEY (`id_respuesta`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `bloque` ( `id_bloque` int(11) NOT NULL AUTO_INCREMENT, `bloque` varchar(50) NOT NULL, PRIMARY KEY (`id_bloque`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
CREATE TABLE IF NOT EXISTS `pregunta` ( `id_pregunta` int(11) NOT NULL AUTO_INCREMENT, `activa` tinyint(1) NOT NULL DEFAULT '0', `eliminada` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id_pregunta`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
sigo sin poder, ya intente con subconsultas y nada, espero me puedas ayudar. Muchas gracias
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
enlazar 3 combobos con tres tablas (visual basic.net 2005 con sql server 2000)
Programación Visual Basic
|
javierch.esiis
|
2
|
4,183
|
29 Julio 2008, 04:50 am
por krackwar
|
|
|
como hacer filtro de tres combobox con tres tablas en visual basic.net 2005
.NET (C#, VB.NET, ASP)
|
javierch.esiis
|
1
|
11,263
|
30 Julio 2008, 05:14 am
por Hadess_inf
|
|
|
Visualiza Consulta de tres tablas??
PHP
|
sanosiris
|
1
|
2,217
|
11 Junio 2009, 23:44 pm
por дٳŦ٭
|
|
|
¿Join entre tres tablas?
Bases de Datos
|
javirk
|
1
|
4,094
|
12 Febrero 2012, 15:01 pm
por lipman
|
|
|
Sacar 3 resultados de 2 tablas
Bases de Datos
|
DeXon18
|
5
|
3,539
|
19 Agosto 2014, 14:51 pm
por DeXon18
|
|