SQL - me ayudan con este query

 
Vista:

me ayudan con este query

Publicado por Montses (5 intervenciones) el 26/04/2007 01:13:10
hola chicos espero que todos se encunetren bien y con animos de contestar mi pregunta, veran tengo este query y lo que prentedo hacer es que arroje un resultado mas menos como este.

-----------------|--------|----------|----------|
Bachillerato |Berlin|La Villa|Tlalpan|
-----------------|--------|----------|----------|
Periodico | 0 | 2 | 1 |
TV | 3 | 0 | 0 |
Revista | 1 | 2 | 3 |

los numero son del campo id_llamas

los medios (periodico, TV, Revista) son de la tabla medios la cabezara es de la tabala cmapus

apenas llevo esto peor ne me da el resultado que quiero, alguien me podria hechar la mano un poquito por favor, mil gracias de natemano

select medio as Bachillerato, count (id_llamada) as Berlin
from (llamadas INNER JOIN campus ON llamadas.id_campus=campus.id_campus)INNER JOIN medios on llamadas.id_medio=medios.id_medio
group by medios.medio
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:me ayudan con este query

Publicado por Isaías (5072 intervenciones) el 26/04/2007 02:39:55
Este concepto se llama PIVOT Tables o Cross Join, lee este articulo:

http://support.microsoft.com/default.aspx?scid=kb%3ben-us%3b175574&Product=sql

O bien este:

http://www.configuracionesintegrales.com/miguele/pivot.asp?articulo=267

O este:

http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/MTJ_2326.asp

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:me ayudan con este query

Publicado por Montses (5 intervenciones) el 26/04/2007 19:48:23
Hola Isaías !!! Gracias poor la ayuda, segui el ejemplo de la primera liga, ya que me resulto mas sencillo, pero ahor ame marca un error, mira esta es mi consulta...

SELECT id_medio,
Q1= ISNULL((SELECT id_llamada FROM llamadas WHERE id_campus = 1 AND id_medio =
Q.id_medio),0),
Q2= ISNULL((SELECT id_llamada FROM llamadas WHERE id_campus = 2 AND id_medio =
Q.id_medio),0),
Q3= ISNULL((SELECT id_llamada FROM llamadas WHERE id_campus = 3 AND id_medio =
Q.id_medio),0),
Q4= ISNULL((SELECT id_llamada FROM llamadas WHERE id_campus = 4 AND id_medio =
Q.id_medio),0)
FROM llamadas Q
GROUP BY id_medio


me podras ayudar un poquito el rror me lo marca en las Q1, Q2, etc, yo me imagino que esos son los nombre que le dare a cada columno o no ??

mil gracias otra ves.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:me ayudan con este query

Publicado por Isaías (5072 intervenciones) el 26/04/2007 21:51:48
¿Y asi?

SELECT id_medio,
Q1= (SELECT isnull(id_llamada, 0) FROM llamadas WHERE id_campus = 1 AND id_medio = Q.id_medio),
Q2= (SELECT isnull(id_llamada, 0) FROM llamadas WHERE id_campus = 2 AND id_medio = Q.id_medio),
Q3= (SELECT isnull(id_llamada, 0) FROM llamadas WHERE id_campus = 3 AND id_medio = Q.id_medio),
Q4= (SELECT isnull(id_llamada, 0) FROM llamadas WHERE id_campus = 4 AND id_medio = Q.id_medio)
FROM llamadas Q
GROUP BY id_medio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:me ayudan con este query

Publicado por Montses (5 intervenciones) el 26/04/2007 22:20:12
en verdad te agradezco tu ayuda, prove con el me diste pero aun asi me sigue marcando el error, este es el error..

ERROR: column "q1" does not exist at character 19

tu que crees que me haga falta???

mil gracias otra ves !!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:me ayudan con este query

Publicado por Isaías (5072 intervenciones) el 26/04/2007 23:33:32
A ver:

SELECT id_medio,
(SELECT isnull(id_llamada, 0) FROM llamadas WHERE id_campus = 1 AND id_medio = Q.id_medio) AS Q1,
(SELECT isnull(id_llamada, 0) FROM llamadas WHERE id_campus = 2 AND id_medio = Q.id_medio) AS Q2,
(SELECT isnull(id_llamada, 0) FROM llamadas WHERE id_campus = 3 AND id_medio = Q.id_medio) AS Q3,
(SELECT isnull(id_llamada, 0) FROM llamadas WHERE id_campus = 4 AND id_medio = Q.id_medio) AS Q4
FROM llamadas Q
GROUP BY id_medio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:me ayudan con este query

Publicado por Montses (5 intervenciones) el 27/04/2007 00:36:41
ummm ahora me marca error en el isnull, disuclpa las molestias :( peron enverdad nececito tu ayuda con este query

ERROR: function isnull(integer, integer) does not exist at character 27
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:me ayudan con este query

Publicado por Isaías (5072 intervenciones) el 27/04/2007 01:26:58
¿Es tu motor SQL SERVER?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:me ayudan con este query

Publicado por Montses (5 intervenciones) el 27/04/2007 01:30:42
no enrealidad estoy trabajando con postgres
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:me ayudan con este query

Publicado por Isaías (5072 intervenciones) el 27/04/2007 01:50:29
"pequeñisimo" detalle, las instrucciones que te di, es para una base de SQL Server, lo siento.

Es recomendable abrir siempre la pregunta de la siguiente forma:

Base: SQL SERVER 2005 ENTERPRISE EDITION
OS: WINDOWS 2003

Mi pregunta es:...................................................
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar