块引用
我正在为自己的小公司寻找验证数据的方法,我们有一个复杂的安全数据文件,其中有多个支付相同的投资id。我的最终目标是有一个消息,在我们的系统中弹出,每当我们有一个支付值不同或不相同(涉及每个投资id)。
所以,现在我正在尝试进行一个查询,以识别何时有一个投资id具有不同的payout值(invesment id可以有多个payout,但所有payout必须是完全相同的值)。我对sql还是有点陌生,所以任何建议都将不胜感激。
这是一个缩小的例子,我正在使用的数据文件输入图像描述这里。在这个例子中,投资id 455和543应该标记为错误,因为投资455有一个空值,而投资543有两个不同的值。
我的代码设置在逻辑上是合理的,但由于having语句中的payout\u值不是聚合或group by,因此无法正常运行。如果您有任何提示或方法来解决这个问题,我将非常感谢您。
Select Investment_ID, Payout_# From investment_table
Group BY investment_ID, Payout_#
Having Sum(payout_value) / Count(payout_#) <> payout_value
Order by investment_id, payout_#
在此处输入代码
谢谢,乔
2条答案
按热度按时间mv1qrgav1#
你好像在找
investment_id
至少有一个空值的payout_value
,或至少两个不同的payout_values
.如果是这样,您可以使用聚合,并使用
having
条款:另一方面,如果您希望所有行都用于
investiment_id
s、 可以使用聚合:pbossiut2#
在这个例子中,投资id 455和543应该标记为错误,因为投资455有一个空值,而投资543有两个不同的值。
您可以这样使用聚合: