40 / 40 / 10
Регистрация: 18.11.2009
Сообщений: 115
1

SQL подсчет количества строк

28.03.2014, 20:45. Показов 1131. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.
Имеется таблица с данными: цех, отдел, шифр и состояние.
Необходимо вывести:
1) количество шифров для каждого цеха, которые делаются, например в отделе "БПНИ" (это вроде получилось)
2) количество шифров для каждого цеха, которые делаются в том же отделе "БПНИ" и имеют статус "Выполнен" - здесь проблема.
Итоговая таблица, какая должна получиться показана на рисунке.

SQL
1
2
3
4
5
6
7
8
9
10
11
SELECT  CEX
, COUNT(*) AS CNT
, (SELECT COUNT(*)
FROM TABLE1 
WHERE   OTDEL = 'БПНИ' 
AND STATE_PR = 'Выполнен'
)  AS CNT_2
 
FROM    TABLE1 WHERE    OTDEL = 'БПНИ' 
GROUP BY    CEX 
ORDER BY    CEX
Спасибо.
Миниатюры
SQL подсчет количества строк   SQL подсчет количества строк  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.03.2014, 20:45
Ответы с готовыми решениями:

Семантический анализ текста(Подсчёт количества одинаковых строк в списке)
Привет всем это снова я помогите мне у меня имеется база примерно в 2 гб не больше но не суть в...

Подсчет количества строк
Помогите пожалуйста исправить код запроса чтобы он правильно работал. Формулировка запроса:...

SQL Выборка последних строк пока сумма столбца будет меньше определенного количества
Приветствую! Пример таблицы 'table': |table1----|----table2|----table3---|...

Подсчет количества компонентов
Здравствуйте, товарищи! Помогите решить такую задачу: В таблице Orders есть заказ, состоящий из...

5
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
28.03.2014, 22:12 2
Может лучше разбить на два запроса? Если в один, то можно использовать: count(case when ...)
0
40 / 40 / 10
Регистрация: 18.11.2009
Сообщений: 115
29.03.2014, 14:24  [ТС] 3
Как вариант можно использовать два запроса. Тогда возникает вопрос, как вывести нулевые значения. Например, для цеха "15" все объекты имеют статус "проектирование" и нужно вывести, что для цеха "15", имеющие статус "Выполнен" значение "CNT_2" равно "0".
Примерный запрос:
SQL
1
2
3
4
5
6
7
8
9
10
SELECT CEX,COUNT(*)  
    FROM 
        TABLE1 
    WHERE
        OTDEL = 'БПНИ' AND 
        STATE_PR = 'Выполнен'
GROUP BY        
    CEX 
ORDER BY    
    CEX
Для этого запроса цех "15" вообще не выводится. Как вывести это нулевое значение?
0
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
29.03.2014, 18:42 4
К первому запросу прилефтджойните второй.
1
40 / 40 / 10
Регистрация: 18.11.2009
Сообщений: 115
30.03.2014, 11:07  [ТС] 5
Попробовал отдельно запрос с LEFT JOIN - все работает, но если его засунуть в общий запрос выдает неправильное значение для цеха "10".
Миниатюры
SQL подсчет количества строк  
0
40 / 40 / 10
Регистрация: 18.11.2009
Сообщений: 115
30.03.2014, 17:02  [ТС] 6
Kuku, спасибо за ответы. Все решилось гораздо проще

SQL
1
2
3
4
5
6
7
8
9
10
11
12
SELECT  
    CEX
    , COUNT(*) AS CNT
    , SUM(IIF(STATE_PR = 'Выполнен', 1, 0)) AS CNT_2
FROM    
    new_schema.new_table
WHERE   
    OTDEL = 'БПНИ'
GROUP BY        
    CEX 
ORDER BY    
    CEX
0
30.03.2014, 17:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.03.2014, 17:02
Помогаю со студенческими работами здесь

Подсчет количества дней
У меня есть таблица с датами. ( Пример: 1. 2010-05-10 2. 2010-05-16 3. 2010-05-20 ...

Подсчет количества записей
Здравствуйте, у меня есть 2 таблицы, в одной имя пользователей в другой сообщения что они создают....

Неправильный подсчет количества полей
Всем привет . Пытаюсь реализовать прикладную задачу – за выбранный период происходит расчет...

Подсчет количества с применением DateTimePicker
Здравствуйте, помогите с запросом пожалуйста. Есть таблица total_work, в таблице две колонки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru