我有一个类别表,属性为
此tag_id是其父项或子项的顺序或模式。
样品:
CREATE TABLE category (
id int,
parent_id int,
code varchar(255),
name varchar(255).
tag_id varchar(255)
);
INSERT INTO category (id, parent_id, code, name, tag_id)
VALUES
(1,null,0,'category 1','|1|'),
(2,null,1,'category 2','|2|'),
(3,null,2,'category 3','|3|'),
(4,null,3,'category 4','|4|'),
(5,4,4,'category 5','|4|5|'),
(6,5,5,'category 6','|4|5|6|');
如您所见,如果tag_id内的第一个值是其ID,则可以确定类别是否为父级。
我想按相同的第一个父ID对该类别进行分组
原因:我将此表连接到另一个表中,其中有一个金额列,我想使用第一个父代ID进行汇总和分组。
例如,我有一个销售表,其中它与产品表有关系。并且该产品表与类别表有关系。
在sales表中,它的列中有total_amount和product_id。该product_id链接到产品表的ID。并且此产品表具有一个category_id列,该列链接到类别表的ID。
主要目标是获得一级类别已售出的SUM OF TOTAL_AMOUNT。我只需要如何拆分 角色并仅获得第一级类别
谢谢!
如果您需要标记的第一个不同值,则无需分组
Select distinct id as tag_id from (SELECT SUBSTRING(s.tag_id,3,CHARINDEX('|',S.tag_id,3)-3) id from category s) temp
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句