2014-02-26 2 views
-1

나는 테이블 이름이 conversion이고 나는 이것들을 아래에 언급 된 열을 가지고 있습니다. 나는 'dimension'값의 길이와 너비 행을 곱하기를 원합니다. 또 다른 새로운 테이블을 표시SQL에서 아래에 언급 된 테이블에 대한 쿼리를 작성 도와주세요

아무것도 MS 액세스에서 동일한 로직 변경하는 경우 알려 주시기 바랍니다

아마 그것은 간단하지만 난 당신의 솔루션을 기다리고 문제를 해결하기 위해 정확한 쿼리를 잘 모릅니다

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

모든 행에 대해 결과 열'new column (L * W) here '을 완성하십시오. – 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

관련 문제