Consulta SQL

06/06/2007 - 12:53 por Jose Gregorio Alvarez Regalado | Informe spam
No se si este sera el grupo correcto pero de todas farmas hare la
pregunta...

Tengo una tabla donde los usuarios califican un producto con un voto
númerico del 1 al 5. mediante una columna claculada me devuelve el "rating"
de cada producto.
Ahora necesito consultar un producto y devolver la posicion dentro del
rating...
Seria posible hacer esto directamente con una consulta? o necesariamente
debo recorrer la tabla ordenada por el rating?

Gracias de antemano.

Preguntas similare

Leer las respuestas

#6 Nuno Santos
06/06/2007 - 15:39 | Informe spam
Pido desculpas me havía equivocadao en la quuery.. tenta asin:
CREATE TABLE ##Table1 (Produto varchar(1),Rating INT)
INSERT INTO ##Table1 (Produto,Rating) VALUES('A',2)
INSERT INTO ##Table1 (Produto,Rating) VALUES('B',3)
INSERT INTO ##Table1 (Produto,Rating) VALUES('C',5)
INSERT INTO ##Table1 (Produto,Rating) VALUES('D',4)
INSERT INTO ##Table1 (Produto,Rating) VALUES('E',3)
INSERT INTO ##Table1 (Produto,Rating) VALUES('F',4)
INSERT INTO ##Table1 (Produto,Rating) VALUES('G',1)

SELECT COUNT(*) as Position FROM ##Table1 T
WHERE T.Rating > (SELECT Rating FROM ##Table1 WHERE Produto = 'B')


NS

"Jose Gregorio Alvarez Regalado" wrote in message
news:
Me explico mejor

Tengo la tabla de Productos

Produto Rating
A 2.5
B 3.3
C 5.0
D 4.7
E 3.1
F 4.8
G 1.9

Deseo consultar un producto y saber cual es su posicion dentro del rating
Por ejemplo si consultara el producto B debria devolverme la posición 4

Produto Rating Posicion
C 5.0 1
F 4.8 2
D 4.7 3
B 3.3 4
E 3.1 5
A 2.5 6
G 1.9 7

Espero haberme explicado mejor...


Gracias de antemano

"Nuno Santos" <nunos7@[REMOVER]hotmail.com> escribió en el mensaje
news:
No entiendo bien lo que quieres!?!? Quieres saber si el produto está en
1º o 2º o 3º o nº lugar?
Si es esto, puedes traer todos los que tengan mayor "rating" y después
con el RecordCount sabes cual la posición del produto, pués estará en el
último lugar de los que traes, es decir si tienes:

Verifica la query pués no la hé testado, y puede no ser asin tan
linear...

Produto Rating
A 2
B 3
C 5
D 4
E 3
F 4
G 5

SELECT DISTINCT Rating FROM Tabla T JOIN Tabla T 1 ON T.Produto =
T1.Produto
WHERE T.Produto = "B" AND T.Rating < T1.Rating

En este caso el produto "B" está en 3º...

NS

"Jose Gregorio Alvarez Regalado" wrote in
message news:OrQB$
No se si este sera el grupo correcto pero de todas farmas hare la
pregunta...

Tengo una tabla donde los usuarios califican un producto con un voto
númerico del 1 al 5. mediante una columna claculada me devuelve el
"rating" de cada producto.
Ahora necesito consultar un producto y devolver la posicion dentro del
rating...
Seria posible hacer esto directamente con una consulta? o necesariamente
debo recorrer la tabla ordenada por el rating?

Gracias de antemano.









Respuesta Responder a este mensaje
#7 Jose Gregorio Alvarez Regalado
06/06/2007 - 15:49 | Informe spam
Gracias Nuno...
Funcionó perfecto


Muchisismas gracias...


"Nuno Santos" <nunos7@[REMOVER]hotmail.com> escribió en el mensaje
news:ub1Jg%
Pido desculpas me havía equivocadao en la quuery.. tenta asin:
CREATE TABLE ##Table1 (Produto varchar(1),Rating INT)
INSERT INTO ##Table1 (Produto,Rating) VALUES('A',2)
INSERT INTO ##Table1 (Produto,Rating) VALUES('B',3)
INSERT INTO ##Table1 (Produto,Rating) VALUES('C',5)
INSERT INTO ##Table1 (Produto,Rating) VALUES('D',4)
INSERT INTO ##Table1 (Produto,Rating) VALUES('E',3)
INSERT INTO ##Table1 (Produto,Rating) VALUES('F',4)
INSERT INTO ##Table1 (Produto,Rating) VALUES('G',1)

SELECT COUNT(*) as Position FROM ##Table1 T
WHERE T.Rating > (SELECT Rating FROM ##Table1 WHERE Produto = 'B')


NS

"Jose Gregorio Alvarez Regalado" wrote in message
news:
Me explico mejor

Tengo la tabla de Productos

Produto Rating
A 2.5
B 3.3
C 5.0
D 4.7
E 3.1
F 4.8
G 1.9

Deseo consultar un producto y saber cual es su posicion dentro del rating
Por ejemplo si consultara el producto B debria devolverme la posición 4

Produto Rating Posicion
C 5.0 1
F 4.8 2
D 4.7 3
B 3.3 4
E 3.1 5
A 2.5 6
G 1.9 7

Espero haberme explicado mejor...


Gracias de antemano

"Nuno Santos" <nunos7@[REMOVER]hotmail.com> escribió en el mensaje
news:
No entiendo bien lo que quieres!?!? Quieres saber si el produto está en
1º o 2º o 3º o nº lugar?
Si es esto, puedes traer todos los que tengan mayor "rating" y después
con el RecordCount sabes cual la posición del produto, pués estará en el
último lugar de los que traes, es decir si tienes:

Verifica la query pués no la hé testado, y puede no ser asin tan
linear...

Produto Rating
A 2
B 3
C 5
D 4
E 3
F 4
G 5

SELECT DISTINCT Rating FROM Tabla T JOIN Tabla T 1 ON T.Produto =
T1.Produto
WHERE T.Produto = "B" AND T.Rating < T1.Rating

En este caso el produto "B" está en 3º...

NS

"Jose Gregorio Alvarez Regalado" wrote in
message news:OrQB$
No se si este sera el grupo correcto pero de todas farmas hare la
pregunta...

Tengo una tabla donde los usuarios califican un producto con un voto
númerico del 1 al 5. mediante una columna claculada me devuelve el
"rating" de cada producto.
Ahora necesito consultar un producto y devolver la posicion dentro del
rating...
Seria posible hacer esto directamente con una consulta? o
necesariamente debo recorrer la tabla ordenada por el rating?

Gracias de antemano.













Respuesta Responder a este mensaje
#8 Diego Jancic
28/06/2007 - 05:50 | Informe spam
Hola,
Mas alla de la performance lo podes hacer (facil, obvio) si estas usando
SQLServer 2005 o algun otro servidor (no me acuerdo cual lo soporta, si
oracle, mysql...)
La cosa es que podes usar ROWNUMBER para saber la posicion...

Si estas con sql 2005 avisa y te doy mas info si queres...

Saludos,
Diego
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida