2016-07-06 2 views
0

я следующий Структура таблицы, которая приведена нижеГруппировка по нескольким столбцам с использованием агрегатных функций

Budhol COCODE BEN  OBJ SPARE2 SPARE1 TASKNO Value FieldNameNew 
    362103 36  362101 991003 NULL MA1001 NULL 4516 613030 
    362103 36  362101 991003 NULL MA1001 NULL 9088 613030 
    362103 36  362101 991003 NULL MA1001 NULL 3387 613030 
    362103 36  362101 991003 NULL MA1001 NULL 4026 613030 

Ниже требуемая мощность

Budhol COCODE BEN  OBJ SPARE2 SPARE1 TASKNO Value FieldNameNew 
    362103 36  362101 991003 NULL MA1001 NULL 21017 613030 

т.е. Значение должно быть SUMED, если все столбцы то есть сумма всех значений Столбец

Ниже приведен запрос, который я пробовал, но значение не подходит должным образом.

SELECT B.BEN, 
     B.BUDHOL, 
     B.COCODE, 
     B.FIELDNAMENEW, 
     B.OBJ, 
     B.SPARE1, 
     B.SPARE2,  
     SUM(B.value)as Value into #temp4 
FROM (
    SELECT DISTINCT A.BEN, 
        A.BUDHOL, 
        A.COCODE, 
        A.FIELDNAMENEW, 
        A.OBJ, 
        A.value, 
        A.SPARE2, 
        A.SPARE1  
    FROM #temp3 A 
    LEFT JOIN #temp3 T1 ON A.BEN = t1.BEN 
     AND A.BUDHOL = t1.BUDHOL 
     AND A.COCODE = t1.COCODE 
     AND A.OBJ = t1.OBJ 
     AND A.SPARE1 = t1.SPARE1 
     AND A.SPARE2 = t1.SPARE2 
     AND A.FieldNameNew = t1.FieldNameNew 
) B 
GROUP BY B.BEN, 
     B.BUDHOL, 
     B.COCODE, 
     B.OBJ, 
     B.FIELDNAMENEW, 
     B.SPARE1, 
     B.SPARE2 

ответ

1

Основываясь на том, что вы пишете, гораздо проще запрос будет работать:

SELECT B.BEN, B.BUDHOL, B.COCODE, B.FIELDNAMENEW, B.OBJ, B.SPARE1, B.SPARE2,  
     SUM(B.value) as Value 
into #temp4 
FROM #temp3 B 
GROUP BY B.BEN, B.BUDHOL, B.COCODE, B.FIELDNAMENEW, B.OBJ, B.SPARE1, B.SPARE2; 
Смежные вопросы