0

不知道如何解释,因为我只有基本的 SQL 知识。当在复合主键中多次引用唯一字符串时,我需要一些逻辑帮助来向用户发出信号。

我使用的表包含一个复合主键,它将唯一的“ItemCode”与重复的“WarehouseCode”联系起来。“QuantityOnHand”列列出了我们在每个仓库中拥有的物品数量:

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

等等

当 ItemCode 001 在两个单独的仓库中时,我如何“发出信号”(创建布尔值?)?

最终结果是一个水晶报告,当一件物品的总数量在两个仓库之间分配时,它会以某种方式提醒用户。

谢谢

4

3 回答 3

1

利用 GROUP BY 和 HAVING。例如,此查询将返回 ItemCodes 列表以及它们在多少仓库中的计数,其中该计数大于 1。

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

在水晶中,您可能希望在 ItemCode 上创建一个组,然后您可以评估:DistinctCount({table.WarehouseCode})但我建议您使用 SQLgroup by ItemCode having count(distinct WarehouseCode) > 1

于 2012-12-14T10:01:19.777 回答
0

在 Crystal 中比在纯 SQL 中更容易做到

使用水晶功能:

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 回答