2016-02-05 2 views
0

Я делаю финансовый скрипт, и в конце каждого месяца мне нужна последняя сумма всех счетов-фактур. Если счет имеет 4 или 10 строк, каждая строка содержит полную сумму.Как найти SUM всех строк, которые имеют уникальное значение

Поэтому мне нужно найти разные номера счетов и суммировать их стоимость.

SELECT finalprice 
FROM invoices 
GROUP BY invoicenumber; 

finalprice

87.26 
    153.72 
    10.56 
    979.20 
    136.20 
    47.10 
    112.62 

Это дает мне каждый уникальный ряд, но не подводить их, когда я пытаюсь с:

SELECT sum(finalprice) 
FROM invoices 
GROUP BY invoicenumber; 

суммы (finalprice)

349.04 
1690.92 
    10.56 
11750.4 
    544.8 
    141.3 
1351.44 

Это SUM каждой строки в уникальном invoicenumber, но мне нужно суммировать каждое уникальное значение счета-фактуры.

+1

Нам нужны исходные данные выборки и вывода желания. Прямо сейчас вы показываете только свой текущий результат. Пожалуйста, прочитайте http://stackoverflow.com/help/how-to-ask Здесь отличное место для [** START **] (http://spaghettidba.com/2015/04/24/how-to -post-at-sql-question-on-a-public-forum /) –

+0

спасибо, что это мой первый вопрос –

+0

Нет проблем. Оставьте сообщение, когда вы обновите свой вопрос, чтобы получить уведомление. Просто добавьте '@ JuanCarlosOropeza' –

ответ

0

Просто создать таблицу деривата, где вы удалить дубликаты

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

SELECT SUM(finalprice) 
FROM (SELECT DISTINCT invoicenumber, finalprice 
     FROM invoices) t; 

Также вы можете использовать свой вариант

SELECT SUM(finalprice) 
FROM (SELECT finalprice 
     FROM invoices 
     GROUP BY invoicenumber) t; 

ПРИМЕЧАНИЕ: Образуется таблицы необходимо псевдоним, так что я просто использовать t.

+0

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

+0

обновите ответ. Я обновляю его –

+0

Нет, не работает, оба дали тот же результат SUM (finalprice) \t 61161.51, но реальное число должно быть 34450.38 .. :( –

0

Самым простым способом исправить это просто разделить на count():

SELECT sum(finalprice)/count(*) 
FROM invoices 
GROUP BY invoicenumber 
Смежные вопросы