0

SQL Server 2008 Express を使用しており、次のことを行いたいと考えています。

Ingredient と UnitOfMeasure の 2 つのテーブルがあります。Ingredient には、id、name、quantity、comment、uom_id の 5 つの列があります。E.

    ID 名前 数量 コメント UOM_ID
    1 にんにく 2.00 みじん切り 1

UnitOfMeasure には、id、name の 2 つの列があります。例えば

    識別名
    小さじ1杯

Ingredient に「detail」という新しい列を作成しました。unitOfMeasure テーブルの名前を含む他のすべての列の組み合わせを入力したいと思います。新しい Ingredient テーブルの EG が必要です。

    ID 名前 数量 コメント UOM_ID DETAIL
    1 にんにく 2.00 みじん切り 1 小さじ 2 のにんにく (みじん切り)

私はいくつかの基本的な SQL を手に入れましたが、これは次のようになります。

    成分を更新する
    詳細を設定 = キャスト (varchar としての数量) + ' ' +
             名前 + 合体 (' (' + コメント + ')', '')

それは一種の機能ですが、いくつかの問題があります。まず数量はこのように出てきます。2.00 .00 を削除できるようにしたいのですが、状況によっては 0.5 になる可能性があるため、単に金額を四捨五入することはできません。

2 つ目の問題は、コメント フィールドが空白の場合に "()" が表示されることです。コメント フィールドが空白の場合、括弧を表示したくありません。

最後の問題は、UnitOfMeasure テーブルへの結合方法がわからないことです。

これらの問題の 1 つでも解決できれば、非常に感謝しています。ありがとう。

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 に答える