2010-05-07 64 views
0

我有一個小問題來討論,我希望它會很容易爲你。 假設我有2列表A作爲在同一張表和相同的彩色行操作

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

現在我想顯示從表A衍生的表B中

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

公式增長率ROW1是

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

你能爲其提出一個SQl查詢嗎

+0

sql server/Mysql/Oracle? – 2010-05-07 12:17:45

+1

另外,是否有另一列顯示順序?或者從哪個順序可以推斷出來? – MJB 2010-05-07 12:18:34

+3

聽起來像某人正在試圖完成一些作業的簡單方法。 – Prutswonder 2010-05-07 12:21:02

回答

0

你的主要技巧是編寫SQL在一行中獲得兩個連續的行。

根據不同的服務器上有幾個方法可以做到這一點

例如,你可以從一個查詢子查詢,將獲得具有較低的值,則當前行中值的第一行加入每一行。

爲了得到你想要的,你還需要使用一個功能,將空值轉換爲0

注的結果:你的結果中排例如4只列出了增長率100;這與第一行的例子不一致。

+0

謝謝!但我找不到合適的t sql,因爲如果我對同一個表使用內部聯接,則第一行重複第二部分的行。 – Raj 2010-05-10 07:19:45

+0

您需要顯示更多的表格結構纔能有現成的查詢;在SQL中連接連續行的方法是刪除不需要的結果(例如具有某個唯一鍵的相同值的行,並將結果限制爲其餘記錄的第一個)。正如我所說的,如果您希望獲得幫助,可以更好地顯示錶格的結構(列出表格名稱,主鍵和用於建立訂單的列,並修復您的示例,但它不明確) – Unreason 2010-05-10 08:45:34