Comment puis-je me soustraire à deux rangs de valeurs dans la même colonne à l'aide d'une requête sql?
Je veux afficher les subtraction
de deux valeurs de two
différentes lignes à l'aide d'un SQL
requête.
C'est la structure de la table:
------------------------------------
id | name | sub1 | sub2 | date
------------------------------------
1 | ABC | 50 | 75 | 2014-11-07
2 | PQR | 60 | 80 | 2014-11-08
Je veux soustraire date 2014-11-08 sujet des marques à partir de la date 2014-11-07.
Sortie doit être comme
| sub1 | sub2 |
---------------
| 10 | 5 |
OriginalL'auteur Talk2Nit | 2014-11-08
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser une jointure pour obtenir les lignes puis de soustraire les valeurs:
OriginalL'auteur Gordon Linoff
J'ai l'impression que vous êtes en laissant une partie importante de vos besoins réels, où vous aurez probablement envie de groupe par certains domaine spécifique et le retour des valeurs correspondantes, de sorte que la réponse sera plutôt limité. Vous pouvez double de référence le tableau comme dans l'exemple ci-dessus, mais il est généralement beaucoup mieux si vous pouvez en quelque sorte seulement font référence à la table qu'une seule fois et de supprimer la nécessité pour l'indice de recherches, de recherches signet, etc. Vous pouvez généralement utiliser de simples agrégats ou fenêtré agrégats pour accomplir cette tâche.
http://sqlfiddle.com/#!6/75ccc/2
OriginalL'auteur Bruce Dunwiddie
De la croix-joint peut être difficile de travailler avec, car ils se rapportent les données d'une façon qui ne sont généralement pas intuitive. Voici comment j'allais le faire au lieu de cela, avec le simple, par défaut,
INNER JOIN
:Si vous voulez faire cela pour de multiples ensembles de dates, vous pouvez le faire aussi. Il suffit de changer le
JOIN
déclaration légèrement. (Notez que dans ce cas, vous pouvez égalementSELECT
l'une des dates ainsi, de sorte que vous savez quelle période de temps chaque résultat s'applique.)OriginalL'auteur Carolyn Conway