0

我正在使用 SQL Server 2008 Express 并希望执行以下操作。

我有两个表,成分和 UnitOfMeasure。在成分中,我有 5 列:id、名称、数量、评论、uom_id。E.

    ID 名称 数量 备注 UOM_ID
    1 大蒜 2.00 切碎 1

在 UnitOfMeasure 中,我有 2 列:id、name。例如

    身份证名称
    1茶匙

我在成分中创建了一个名为“详细信息”的新列,我希望用所有其他列的组合填充它,包括 unitOfMeasure 表中的名称。需要新成分表的 EG。

    ID NAME QTY COMMENT UOM_ID DETAIL
    1 大蒜 2.00 切碎 1 2 茶匙大蒜(切碎)

我有一些基本的 SQL,我敲出来的看起来像这样。

    更新成分
    设置细节 = cast(数量为 varchar) + ' ' +
             名称+合并('('+评论+')','')

它有点工作,但有一些问题。首先,数量是这样出来的。2.00 我希望能够降低 0.00,但在某些情况下可能是 0.5,所以我不能简单地将金额四舍五入。

第二个问题是当评论字段为空白时,我得到“()”。如果提交的评论是空白的,那么我不想显示括号。

最后一个问题是我不确定如何加入 UnitOfMeasure 表。

如果您能解决其中一个问题,我将不胜感激。谢谢。

4

1 回答 1

2

尝试这个

update i
set i.detail = cast(cast(i.quantity as int) as varchar) + ' '  + 
             name + coalesce(' (' + nullif(ltrim(rtrim(COMMENT)),'') + ')', '') 
from ingredient i
left outer join UnitOfMeasure m on i.UOM_ID = m.id
于 2013-08-11T03:04:41.007 回答