2013-09-30 3 views
0

Это действительно простой вопрос, я знаю, что это так. Но я не могу понять, как это повлияло на меня.Условное суммирование T-SQL

У меня есть несколько coloumns, но основными являются ReservationFee и Invoice ID.

В принципе, в одном счете может быть несколько «РезервированиеFees». Это значение будет помещено в хрустальный отчет, поэтому мне в идеале необходимо суммировать плату за бронирование для каждого идентификатора счета.

Пример данных

Invoice ID  Reservation Fee 
1    200 
1    300 
2    100 
3    350 
3    100 

Ожидаемый результат

Invoice ID  Reservation Fee 
1    500 
2    100 
3    450 

Я попробовал несколько различных сумм и группировок, но не может получить это право, я виню понедельник утром!

+0

Не дубликат, мой ответ был открыт для ответов с использованием кристалла. –

ответ

1

Если вы хотите SUM на сервере, то:

SELECT [Invoice ID], 
     SUM([Reservation Fee]) 
FROM Table 
GROUP BY [Invoice ID] 

Если вы хотите SUM в кристалле затем добавить command или перетащить таблицу

SELECT [Invoice ID], 
     [Reservation Fee] 
FROM Table 

Затем щелкните правой кнопкой мыши в details section и выберите Insert Group.

Добавить поля в раздел «Сведения», щелкните правой кнопкой мыши по полю «Reservation Fee» и выберите вкладку «Всего запущено».

В окне выберите имя, выберите оценку для каждой строки и Сбросьте на смену группы тот, который вы ввели ранее.

Место вновь созданного поля в Group Footer.

0

Попробуйте GROUP BY пункт:

Select 
    [Invoice ID], 
    SUM([Reservation Fee]) [Reservation Fee] 
From 
    YourTable 
GROUP BY [Invoice ID] 
0

Что случилось с:

SELECT [Invoice Id], SUM([Reservation Fee]) AS [Reservation Fee] 
FROM dbo.YourTable 
GROUP BY [Invoice Id] 
+1

Это неправильно ... Пожалуйста, измените поле GROUP BY. –

+0

Возможно, я был неясен в вопросе. Этот запрос вместе с другими ответами дает мне несколько строк для каждого InvoiceID, потому что, конечно, для каждого счета-фактуры имеется несколько резервных сборов. –

0

попробовать это.

declare @Invoice_table table 
(
Invoice_ID int ,  
Reservation_Fee money 
) 
insert into @Invoice_table values 
(1    ,200), 
(1    ,300), 
(2    ,100), 
(3    ,350), 
(3    ,100) 

SELECT SUM (Reservation_Fee) as Reservation_Fee, Invoice_ID from @Invoice_table group by Invoice_ID 
Смежные вопросы