按条件列分组

时间:2018-07-16 05:29:23

标签: sql-server

请帮助我生成特定类型的结果集。我想创建一个新列来标记数字,以便可以进行相应的分组。

如下图所示,TRXCODE 8202是一种GST代码,在任何其他行的TRAMT列中包含10%的值。在这种情况下,第10行在TRAMT列中包含15,占第5行(150)的10%。

第4行和第9行(应在一组中)-第4行的TRAMT是第9行的10%TRAMT 第6和8行(应在同一组中)-第6行的TRAMT是第8行的10%TRAMT 第12和15行(应在一组中)与以上相同(按行参考) 第14和17行(应在一组中)

我作为示例输入的GroupCol中的数字可以用任何数字表示。

enter image description here

这是结果集

CREATE TABLE #TempResult 
(TID INT, CUSTOMER INT, TRBATCH INT, TRDATE DATETIME,  TRREF INT
 ,  TRXCODE VARCHAR(10),  TRAMT DECIMAL(19,2),  TRTYPE VARCHAR(20))
 GO
 INSERT INTO #TempResult
 VALUES (113, 13294, 7246, '2005-05-03', 13827, '1251', 6875.00,  'Receipt'),
        (114, 13294, 7246, '2005-05-03', 13827, '1707', 150.00,   'Receipt'),
        (115, 13294, 7246, '2005-05-03', 13827, '1723', 150.00,   'Receipt'),
        (116, 13294, 7246, '2005-05-03', 13827, '1730', 150.00,   'Receipt'),
        (117, 13294, 7246, '2005-05-03', 13827, '1777', 150.00,   'Receipt'),
        (119, 13294, 7246, '2005-05-03', 13827, '8104', 299.00,   'Receipt'),
        (120, 13294, 7246, '2005-05-03', 13827, '8202', 15.00,    'Receipt'),
        (121, 13294, 7246, '2005-05-03', 13827, '8202', 15.00,    'Receipt'),
        (122, 13294, 7647, '2005-06-28', 13087, '1061', -5450.00, 'Refund'),
        (124, 13294, 7647, '2005-06-28', 13087, '1703', 200.00,   'Refund'),
        (125, 13294, 7647, '2005-06-28', 13087, '1723', -150.00,  'Refund'),
        (126, 13294, 7647, '2005-06-28', 13087, '1730', -150.00,  'Refund'),
        (127, 13294, 7647, '2005-06-28', 13087, '1777', -150.00,  'Refund'),
        (128, 13294, 7647, '2005-06-28', 13087, '8104', -299.00,  'Refund'),
        (129, 13294, 7647, '2005-06-28', 13087, '8202', -15.00,   'Refund'),
        (130, 13294, 7647, '2005-06-28', 13087, '8202', -15.00,   'Refund')

0 个答案:

没有答案