2014-02-26 61 views
-1

下面提到的表我有一個表名conversion,我有這些下面提到的列中,我想乘以長度\寬度行元素l * w'維'值和在另一個新的表格中顯示出來請幫我建立一個查詢,在sql

請讓我知道如果有什麼在MS Access爲相同的邏輯改變

可能很簡單,但我不知道確切的查詢來解決問題等待着您的解決方案

ID area length/width dimensions **new column(L*W) here** 
1 1   l   3     3*5=15 
2 1   w   5 
3 2   l   4 
4 2   w   8 
5 3   l   6 
6 3   w   10 
7 4   l   12 
8 4   w   13 
9 4   W   10 

等待您的回覆

+1

最後3行怎麼辦?他們應該如何相乘? –

+1

請在這裏爲所有行填寫您的結果欄'新列(L * W)'。 – Hamidreza

回答

0

您可以查詢該表兩次:一次爲長度和一次寬度,然後按面積加入並乘以數值:

select length.area, length.dimension * width.dimension 
from 
    (select area, dimension from conversion where lenwidth = 'l') length 
inner join 
    (select area, dimension from conversion where lenwidth = 'w') width 
    on length.area = width.area; 

兩個備註:

  1. 我想,這是一個錯字,你有面積4兩個寬度條目?否則,你將不得不決定在上面的select語句中採用哪個值。
  2. 保留舊錶並保留結果的新表不是一個好主意。如果你改變一個值,該怎麼辦?您必須記住每次都要相應地更改結果。所以要麼丟棄舊錶或使用視圖而不是新表。
0

試試這個

select *, 
dimensions*(lead(dimensions) over(order by id)) product 
from table1; 

或者,如果你想爲設定區域,然後

select *, 
case when length_width='l' and (lead(length_width) over(order by id))='w' 
then dimensions*(lead(dimensions) over(order by id)) 
else 0 
end as product 
from table1; 

fiddle