oracle判断是否唯一,Oracle SQL;确定值是否唯一或不在组中

在结构中,直到今天仍未找到解决方案。 我需要确定产品组是混合还是唯一的。Oracle SQL;确定值是否唯一或不在组中

标准:

如果所有的SKU在托盘有产品组LAMINAAT - > LAM

如果所有的SKU在托盘有产品组设备配件 - > ACC

如果它是一个组合LAMINAAT设备配件 - > MIX

只要1 SKU有一个产品组≠LAMINAAT或设备配件 - >将此字段留空

我目前的SELECT语句的结果给出了如下的结果:

ORDER_ID, PALLET_ID, SKU_ID, PRODUCT_GROUP

80081876 00257084646912345679 9410-3798 ACCESSORIE

80081876 00257084646912345679 9420-3012 ACCESSORIE

80081876 00257084646912345679 9410-3012 ACCESSORIE

80081876 00257084646912345679 9410-3010 ACCESSORIE

80081876 00257084646912345678 9420-3865 ACCESSORIE

80081876 00257084646912345678 9410-3857 ACCESSORIE

80081876 00257084646912345678 9420-3010 ACCESSORIE

80081876 00997084646920000197 3010-3798 LAMINAAT

80081876 00280120160000000001 9420-3853 ACCESSORIE

80081876 00280120160000000001 9420-3895 ACCESSORIE

80081876 00280120160000000001 9320-3853 LAMINAAT

80081876 00280120160000000001 9420-3798 ACCESSORIE

的结果集数据应该说:

Pallet id product group

00257084646912345679 ACC

00280120160000000001 MIX

00997084646920000197 LAM

我想这个代码

WITH cte AS

(SELECT pallet_id,

COUNT(DISTINCT PRODUCT_GROUP) AS counter

FROM product_group_data

GROUP BY pallet_id

)

SELECT p.pallet_id,

p.PRODUCT_GROUP,

CASE WHEN c.counter = 1

THEN SUBSTR(p.PRODUCT_GROUP,1,3)

ELSE 'MIX'

END uniq

FROM product_group_data p

JOIN cte c

ON p.pallet_id = c.pallet_id 的

这涵盖了1,2,3的标准..可悲不是4.

任何想法都比较欢迎届时

谢谢

+0

我不知道我明白你“问。你想要的结果是什么?添加到每个行的LAM/ACC/MIX类型的当前搜索结果中的字段,还是只包含托盘ID和类型的字段? –

+0

很抱歉的不明确的问题.. 是的,我想有一个结果,说: 顺序:80081876 托盘:00257084646912345679 Productgroup:ACC 或者如果托盘包含laminaar设备配件:混合 –

+0

你说在你的问题中不同的东西(下面的答案可以解决),order_id不包括在那里。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值