拥有两个表格,库存和批次,我使用库存表来保存项目的描述,包括项目以及由字段inventory.type作为inventory.type ='isInventoryItem'过滤的项目或inventory.type ='Variety'和inventory.invid作为TEXT,还有lot表。PostgreSQL通配符和子选择计数
invid | type
Sugraone | Variety
Autumn Royal | Variety
Flame | Variety
Summer Royal | Variety
Red Globe | Variety
和项目像这样:
invid | type
Sugraone 19#Pouch Free Bird Ctn B | isInventoryItem
Red Globe 21#PlainSO Chelan Starr 7L Sty | isInventoryItem
Flame 19#Pouch SO2 Puro Filete 5L Styro A | isInventoryItem
我希望能够选择从库存类型=“百变”,并使用按类别统计的大量表中的情况下,像在inventory.invid我试试这个:
SELECT COUNT(inventory.*) AS lots, invid FROM lots
INNER JOIN inventory ON lots.inventory_id = inventory.inventory_id
WHERE invid ILIKE ANY (SELECT '%' || invid || '%'
from inventory WHERE type ='isInventoryItem') GROUP BY invid;
与没有成功,我想这样的输出:
invid | count
Sugraone | 5
Autumn Royal | 6
Flame | 3
Summer Royal | 7
Red Globe | 23
这样做的方法是什么。
编辑:我添加了一个视图(items_view)仅列出因维人的姓名已经过筛选,只得到项目的列表来搜索类别,让简单:
name
Flame 19#Pouch Acosta Produce Ctn B
Flame 19#Pouch Acosta Produce Ctn B
Flame 19#Pouch SO2 J.A.P. Black 5L Styro B
Red Globe 21#PlainSO Chelan Starr 7L Sty
Red Globe 21#PlainSO Chelan Starr 7L Sty
Sugraone 19#Pouch Free Bird Ctn B
Summer Royal 19#Pouch SO2 SF White Od 5L Styro A
Summer Royal 19#Pouch Top Gun Cnt A
我能得到的类别这样的名单:从库存其中type =“百变”选择INID,我得到如下列表:
invid
--------------
Sugraone
Autumn Royal
Flame
Summer Royal
Red Globe
现在的问题是如何通过列表进行这一类列表循环,如下
invid | count
Sugraone | 1
Autumn Royal | 2
Flame | 3
Summer Royal | 2
Red Globe | 2
你是绝对正确的有一个类别表,可悲的是设计不是我的 – Jose
我编辑了问题的清晰度,我认为与您的答案和一些解决方法,我找到了满足条件的方式,但我仍然没有找到办法 – Jose