Tengo una base de datos de jugadores de fútbol y sus estadísticas donde los primeros tres campos son VARCHAR y el resto son INT. Quiero mostrar los registros en orden DESC según la suma total de sus estadísticas, PERO no quiero mostrar la suma total.

Aquí hay algunos datos de ejemplo ingresados ​​en la base de datos:

Tim Tebow          NYJ         QB          315             2             62             1
Tom Brady          NE          QB          344             3             13             0
Tony Romo          DAL         QB          337             4             25             0

Y cómo me gustaría que se muestre (en orden de la suma de PASS_YDS + PASS_TDS + RUSH_YDS + RUSH_TDS):

Player        |   Team    |   Pos   |   PASS_YDS   |   PASS_TDS   |   RUSH_YDS   |   RUSH_TDS
-------------------------------------------------------------------------------------------------
Tim Tebow          NYJ         QB          315             2             62             1
Tony Romo          DAL         QB          337             4             25             0
Tom Brady          NE          QB          344             3             13             0

Aquí está la consulta que estoy usando para obtener los datos de mi base de datos y mostrarlos en una tabla en una página, ordenados por PASS_YDS en orden descendente (sí, sé que mysql_ está en desuso; estaré renovando la aplicación muy pronto pero solo necesito para que funcione correctamente de esta manera primero):

$result = mysql_query("SELECT Player, Team, Pass_Yds, Pass_TDs, Int_Thrown, Rush_Yds, Rush_TDs, Total_Fantasy_Pts FROM ff_projections WHERE Position = 'QB' ORDER BY Pass_Yds DESC;");

¿Qué debo hacer para ordenarlo como quiero?

0
Cynthia 7 jun. 2012 a las 07:52

1 respuesta

La mejor respuesta

Exactamente como uno podría imaginarse:

SELECT   Player, Team, Pass_Yds, Pass_TDs, Int_Thrown, Rush_Yds, Rush_TDs
FROM     ff_projections
WHERE    Position = 'QB'
ORDER BY Pass_Yds + Pass_TDs + Rush_Yds + Rush_TDs DESC

Sin embargo, solo porque uno incluye una columna en la lista de selección no significa que su aplicación tenga que usar esa columna ...

2
eggyal 7 jun. 2012 a las 07:55
LOL, ese fue mi primer instinto, pero soy tan nuevo en esto, pensé que no podía ser tan lógico, así que comencé a buscar en Google y leer publicaciones aquí y me di la vuelta. :) ¡Gracias!
 – 
Cynthia
7 jun. 2012 a las 07:58
Y no necesita seleccionar una columna porque la usa en la cláusula WHERE o ORDER BY ...
 – 
huysentruitw
7 jun. 2012 a las 07:59
¿Crees que puedo omitir Pass_Yds, Pass_TDs, Rush_Yds y Rush_TDs de mi lista SELECT porque ya aparecen en mi lista ORDER BY?
 – 
Cynthia
7 jun. 2012 a las 08:06
Puede omitirlos de la selección porque USTED no los quiere ... ¿Qué tan genial es eso? No quiero ser grosero, pero realmente creo que debería leer sobre SQL antes de hacer estas preguntas básicas.
 – 
huysentruitw
7 jun. 2012 a las 08:10
No los incluía a todos porque pensé que los necesitaba. Los incluí a todos porque todos deben estar en la mesa. En cuanto a leer sobre SQL, lo estoy leyendo. De alguna manera se me cayó esto en el regazo y no había nadie más que pudiera hacerlo, así que tengo que aprender haciéndolo. Si mis preguntas son demasiado básicas, me disculpo, pero si no pregunto, no aprenderé.
 – 
Cynthia
7 jun. 2012 a las 08:13