11
votes

Commande par somme de deux champs

Disons que j'ai une table avec karma_up et karma_down. Chaque fois que quelqu'un vice up karma_up est incrémenté et chaque fois que quelqu'un votote par Karma_down est également incrémenté un aussi bien. Comment puis-je extraire ces lignes et les faire commander par la somme de ces nouvelles valeurs? L'ordre par (karma_up - karma_down) ne semble pas fonctionner comment je veux. Je veux simplement les rangées avec le karma le plus élevé en haut.


1 commentaires

Le résultat final de cette question a été SELECT *, CAST (KARMA_UP - KARMA_DOWDOWDOWDDOWDDOWD) Comme KARMA_TOTAL à partir de LIENS COMMANDER PAR KARMA_TOTAL DESC I Bilut Cast dès que je recevais de très grands nombres pour mes valeurs de karma négatives. C'est ce que je reçois pour non signé mes champs Karma_Up et Karma_Down, mais le casting () était la solution. Merci ya'll!


3 Réponses :


22
votes

très simple xxx


1 commentaires

L'OP veut le plus haut en haut et je pense qu'il a besoin de descendre comme Bill Karwin posté.



2
votes

Est-ce que cela fonctionne? Sinon, pourriez-vous inclure les résultats dans votre question? Commander sur une expression devrait fonctionner comme prévu.

SELECT `post_id`, `karma_up`, `karma_down`, `karma_up` - `karma_down` AS `total`
ORDER BY `total` DESC


0 commentaires

9
votes
SELECT *, karma_up - karma_down AS karma_total 
FROM MyTable
ORDER BY karma_total DESC;

4 commentaires

Ouch, a affiché une réponse correcte juste après la publication de la réponse sélectionnée.


Vous en gagnez un peu, vous en perdez un peu. Ce qui est important, c'est que l'OP ait répondu à sa question.


Vrai, mais juste être sympathique.


Op = affiche originale. La personne qui a posé la question.