0

私は基本的なSQLの知識しか持っていないので、これを説明する方法がわかりません。複合主キーで一意の文字列が複数回参照されたときにユーザーに通知するロジックについてサポートが必要です。

私が使用するテーブルには、一意の「ItemCode」を繰り返しの「WarehouseCode」に関連付ける複合主キーが含まれています。「QuantityOnHand」列には、各倉庫にあるアイテムの量が一覧表示されます。

     _____PK_______
    |              |
ItemCode  |  WarehouseCode  |  QuantityOnHand
---------------------------------------------
   001             A                 100
   001             B                 500
   002             A                 600
   003             B                 250

ItemCode 001が2つの別々の倉庫にある場合、どうすれば「シグナル」(ブール値を作成)できますか?

最終結果は、アイテムの合計数量が2つの倉庫に分割されたときに、何らかの形でユーザーに警告するクリスタルレポートです。

ありがとう

4

3 に答える 3

1

GROUPBYとHAVINGを利用します。たとえば、このクエリは、ItemCodeのリストと、その数が1より大きい倉庫にある倉庫の数を返します。

SELECT ItemCode, COUNT(*)
FROM table
GROUP BY ItemCode
HAVING COUNT(*) > 1
于 2012-12-13T23:44:44.237 に答える
1

クリスタルでは、おそらくItemCodeでグループを作成してから、評価することができます。DistinctCount({table.WarehouseCode})ただし、SQLを使用することをお勧めします。group by ItemCode having count(distinct WarehouseCode) > 1

于 2012-12-14T10:01:19.777 に答える
0

純粋なSQLよりもCrystalで行う方がはるかに簡単です

Crystal関数の使用:

If {table.ItemCode} = Previous({table.ItemCode})
    Then //we have a duplicate ItemCode, do something to flag it

上記は、詳細にこれらの値があり、グループ化されていないことを前提としています。ただし、グループ化されていても、このようなことを行う必要があります

If {table.ItemCode} = Previous({table.ItemCode})
    and {table.WarehouseCode} <> Previous({table.WarehouseCode})
    Then //we have a duplicate ItemCode
于 2012-12-13T23:51:46.580 に答える