请帮助我在sql中为下面提到的表构建查询

请帮助我在sql中为下面提到的表构建查询,sql,ms-access,Sql,Ms Access,我有一个表名conversion,其中有下面提到的列,我想将“dimension”值的Length\width行元素l*w相乘,并将它们显示在另一个新表中 如果ms access中的相同逻辑有任何更改,请通知我 可能很简单,但我不知道确切的查询来解决等待您解决的问题 ID area length/width dimensions **new column(L*W) here** 1 1 l 3

我有一个表名
conversion
,其中有下面提到的列,我想将“dimension”值的Length\width行元素l*w相乘,并将它们显示在另一个新表中

如果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 
等待您的答复

试试这个

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;

您可以查询表格两次:一次查询长度,一次查询宽度,然后按面积合并并乘以值:

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;
两点意见:

  • 我想这是一个打字错误,你有两个宽度项目的区域4?否则,您必须决定在上面的select语句中采用哪个值
  • 保留旧表并用新表保存结果不是一个好主意。如果您更改了一个值怎么办?您必须记住每次都要相应地更改结果。因此,要么丢弃旧表,要么使用视图而不是新表

  • 最后三排呢??它们应该如何相乘?请在此处为所有行填写结果列
    新列(L*W)