2010-05-07 6 views
0

J'ai un petit problème pour discuter j'espère que ce sera facile pour vous. suppose que j'ai le tableau A avec 2 colonnes commeopération de rangée dans la même table et mêmes colonnes

item   price 
milk   25 
milk   50 
milk   100 
Butter   25 
Butter   100 
Butter   200 

maintenant je veux afficher une table B dérivée de la table A comme

item   price growth rate 
milk   0 
milk   100 
milk   100 
Butter  100 
Butter   200 
Butter   100 

formule pour le taux de croissance pour row1 est

((row[1]-row[0])/row[0])*100 
eg for 1st row ((50-25)/25)*100 

pouvez-vous suggérer une requête SQI pour cela

+0

SQL Server/Mysql/Oracle? –

+1

Aussi, y a-t-il une autre colonne indiquant la commande? Ou à partir de quel ordre peut-on déduire? – MJB

+3

On dirait que quelqu'un essaie le moyen facile de faire ses devoirs. – Prutswonder

Répondre

0

L'astuce principale pour vous est d'écrire SQL qui sera obtenir deux rangs consécutifs dans une seule rangée.

Selon le serveur il y a quelques façons de le faire

Par exemple, vous pouvez joindre chaque ligne d'une requête à sous-requête qui va obtenir la première ligne qui a une valeur inférieure à la valeur dans la ligne actuelle.

Pour obtenir les résultats que vous voulez, vous aurez également besoin d'utiliser une fonction qui vous permet de convertir les valeurs NULL à 0.

Note: Votre exemple dans les résultats rang 4 listes taux de croissance 100; ceci est incompatible avec l'exemple de la première rangée.

+0

merci! Mais je n'ai pas trouvé de t sql correct car si j'utilise la jointure interne pour la même table, la première rangée est répétée pour les rangées de la deuxième partie. – Raj

+0

Vous aurez besoin d'afficher plus de structure de vos tables pour avoir une requête prête à l'emploi; la façon de rejoindre des lignes consécutives dans SQL est d'élaguer les résultats indésirables (comme les lignes avec la même valeur d'une clé unique, et aussi de limiter les résultats au premier des autres enregistrements). Comme je l'ai dit, si vous voulez de l'aide pour mieux montrer la structure de vos tables (liste des noms de tables, des clés primaires et de la colonne que vous utilisez pour établir l'ordre, et corrigez votre exemple, c'est ambigu) – Unreason

Questions connexes