2015-01-03 2 views
1

Вот мой запрос:как считать значения столбцов?

SELECT DISTINCT r1.STATE_OFFICE_CODE, 
    r1.AREA_OFFICE_CODE, 
    r1.AREA_OFFICE_NAME, 
    r2.LAST_EOD_EXECUTION 
FROM report_one r1 
INNER JOIN report2 r2 ON r1.distributor_code = r2.distributor_code 
ORDER BY r1.AREA_OFFICE_CODE; 

Это работает отлично. Выход: output

Но когда я пытаюсь считать столбцы r2.LAST_EOD_EXECUTION я получаю ошибку «ни одна группа по функции»:

SELECT DISTINCT r1.STATE_OFFICE_CODE, 
    r1.AREA_OFFICE_CODE, 
    r1.AREA_OFFICE_NAME, 
    r2.LAST_EOD_EXECUTION, 
    count(r2.LAST_EOD_EXECUTION) AS NumberOfDates 
FROM report_one r1 
INNER JOIN report2 r2 ON r1.distributor_code = r2.distributor_code 
ORDER BY r1.AREA_OFFICE_CODE; 

Пожалуйста, кто может помочь? Как я могу подсчитать значения?

+0

Пробовали ли вы, имея только ** COUNT (r2.LAST_EOD_EXECUTION) ** в себе lect article – user7

+0

жаль, что я также использовал группу по синтаксису, которая является ... группой по r1.AREA_OFFICE_CODE по r1.AREA_OFFICE_CODE; – venkat

ответ

2

Отбросьте distinct ключевое слово и добавить group by пункт:

SELECT r1.STATE_OFFICE_CODE, 
    r1.AREA_OFFICE_CODE, 
    r1.AREA_OFFICE_NAME, 
    r2.LAST_EOD_EXECUTION, 
    count(r2.LAST_EOD_EXECUTION) AS NumberOfDates 
FROM report_one r1 
INNER JOIN report2 r2 ON r1.distributor_code = r2.distributor_code 
GROUP BY r1.STATE_OFFICE_CODE, 
    r1.AREA_OFFICE_CODE, 
    r1.AREA_OFFICE_NAME, 
    r2.LAST_EOD_EXECUTION 
ORDER BY r1.AREA_OFFICE_CODE; 

EDIT:
Это не совсем понятно, что вы пытаетесь достичь, но если вы пытаетесь получить число различных LAST_EOD_EXECUTION значения в группе, вы должны использовать ключевое слово distinct внутри count:

SELECT r1.STATE_OFFICE_CODE, 
    r1.AREA_OFFICE_CODE, 
    r1.AREA_OFFICE_NAME, 
    r2.LAST_EOD_EXECUTION, 
    count(distinct r2.LAST_EOD_EXECUTION) AS NumberOfDates 
FROM report_one r1 
INNER JOIN report2 r2 ON r1.distributor_code = r2.distributor_code 
GROUP BY r1.STATE_OFFICE_CODE, 
    r1.AREA_OFFICE_CODE, 
    r1.AREA_OFFICE_NAME, 
    r2.LAST_EOD_EXECUTION 
ORDER BY r1.AREA_OFFICE_CODE; 
+0

см. Мое изображение вывода – venkat

+0

спасибо Mr.Mureinik, что он работает, но небольшая ошибка заключается в том, что вы добавили запятую перед заказом по статье – venkat

+0

@ Ошибка VenkatSri-copy-paste, действительно, спасибо, что указали это. Исправлена. – Mureinik

Смежные вопросы