2

2つのテーブルがあります。1つはSteelOrdersと呼ばれ、もう1つはFinalizedPrintedStickersと呼ばれます。

そして私は最近この質問をしました。

私は答えを得ましたが、私はこの質問に私を導いた質問のいくつかの巨大な詳細を省略しました。

私は現在このクエリを持っています:

Select OrderNumber,  Sum(PanelBuildTime)  AS OrderBuildTime from SteelOrders 
INNER JOIN FinalizedPrintedStickers 
ON 
SteelOrders.OrderNumber = LEFT(FinalizedPrintedStickers.SN,10)
GROUP BY OrderNumber 

FinalizedPrintedStickersからPanelBuildTimeの合計を取得する必要がありますが、FinalizedPrintedStickersテーブルの「Status」フィールドが「Printed」である場合のみです。

Sumステートメントにwhere句を追加するにはどうすればよいですか?

どんな助けでも大歓迎です^_^

編集: FinalizedPrintedStickersテーブルにstatuss ='Printed'がない場合は、' OrderBuildTime'を0にする必要があります....これがAccessを使用して実際に可能かどうかはわかりませんが、うまくいけばそうです。

4

3 に答える 3

3

Bethへの返信に基づいてIIf()、選択リストに式が必要だと思います。

Sum(IIF([Status] = 'Printed', PanelBuildTime, 0))
于 2012-12-14T15:43:09.677 に答える
0

これはあなたが必要なものですか?

シナリオの詳細を含む他の質問を読んでください。どうですか:

    Select OrderNumber,  
      Sum(case when PanelBuildTime is null then 0 else PanelBuildTime end)  AS OrderBuildTime 
    from SteelOrders 
    left outer JOIN (select * from FinalizedPrintedStickers  
       where Status = 'Printed') f ON 
    SteelOrders.OrderNumber = LEFT(FinalizedPrintedStickers.SN,10)
    GROUP BY OrderNumber

また

Select OrderNumber,  
  Sum(statusPrintedCount )  AS OrderBuildTime 
from SteelOrders 
inner JOIN (select *, 
case when Status = 'Printed' then 1 else 0 end as statusPrintedCount 
   from FinalizedPrintedStickers) f ON 
SteelOrders.OrderNumber = LEFT(FinalizedPrintedStickers.SN,10)
GROUP BY OrderNumber

申し訳ありませんが、アクセスタグを見逃しました。これはSQLServer用です。

于 2012-12-14T15:36:26.853 に答える
0

あなたはこのようなことを試すことができます:

Select Distinct a.*, b.PanelBuildTime
From SteelOrders a, 
(Select OrderNumber,  Sum(PanelBuildTime)  AS OrderBuildTime from SteelOrders 
INNER JOIN FinalizedPrintedStickers 
ON 
SteelOrders.OrderNumber = LEFT(FinalizedPrintedStickers.SN,10)
GROUP BY OrderNumber) b
Where a.OrderNumber = b.OrderNumber

編集:あなたはあなたの最初の投稿を編集したばかりで、それは物事を変えます。あなたはすでにあなたの答えを得ているので、大丈夫だと思います;)

于 2012-12-14T15:36:53.000 に答える