使用SQL我需要查询一个表,该表具有通过字母和数字代码的组合识别的库存项目列。每个都在一个单独的列中,所以我可以有多个相同或不同的alpha代码以及相应的数字。反过来,这些链接到客户订单表。
查询和返回结果的最佳方式是什么,其中每个客户订单的所有库存商品都具有相同的alpha代码?
stockitem alpha值会因一个订单而异,因此我没有匹配的静态值。我想我需要验证找到的第一个stockitemalpha值,并将其与所有与特定clientorderid相关联的剩余stockitemalpha匹配?
co.clientordersreference | si.stockitemalpha
------------------------------------------------
1234 | aaa
1234 | aaa
1234 | bbb
4343 | ccc
4343 | ccc
5454 | ddd
5454 | mmm
数据返回:
co.clientordersreference | si.stockitemalpha | stockitemalphacount
-----------------------------------------------------------------------
1234 | aaa | 1
1234 | bbb | 1
4343 | ccc | 1
5454 | ddd | 1
5454 | ccc | 1
5454 | mmm | 1
而我期望每个客户订单引用应用计数的结果,例如:
co.clientordersreference | stockitemalphacount
------------------------------------------------
1234 | 2
4343 | 1
5454 | 3
我的初步查询是:
Select co.clientordersreference, si.stockaitemalpha
from clientorders co, stockitem si
where co.id = si.id
and distinct(si.stockitemalpha) -- this is criteria I'm unsure of
group by co.clientordersreference
答案 0 :(得分:1)
根据您更新的问题,您可以尝试汇总客户订单并获取不同数量的库存商品。
SELECT
co.clientordersreference,
COUNT(DISTINCT si.stockitemalpha) AS COUNT(DISTINCT si.stockitemalpha)
FROM clientorders co
INNER JOIN stockitem si
ON co.id = si.id
GROUP BY
co.clientordersreference