Форум программистов, компьютерный форум, киберфорум
Oracle
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 0
Регистрация: 03.04.2022
Сообщений: 37

Нужно вывести дату без дублей по id_client'a и номерам до дополнительно указав сотрудников, которые их обрабатывали

02.02.2023, 19:19. Показов 521. Ответов 4

Студворк — интернет-сервис помощи студентам
Нужно вывести дату без дублей и с количеством определённых прикреплённых документов.

Есть таблица "accounts_ru", есть сотрудники "created_ru", которые крепят документы, этим документам присваиваются номера "type_document", документы крепятся к клиентам "id_client" и столбец с датами прикрепленных документов "creation_date".

Мне нужно, чтобы скрипт в первом столбце выводил типы документов, которые мы указали в CASE, во втором столбце указывал к какой группе сотрудник относится, который его прикрепил, в третьем столбце указываем дату прикреплённых документов, а четвертый для их количества, но количество должно быть равно одному на одного id_client, т.е. у меня в id_client прикреплено 10 паспортов, но количество этих паспортов на 1 кейс должно выводить как 1, так и с остальными документами.

Надеюсь вопрос понятен. Заранее огромное спасибо. Два дня мозг ломаю.

Есть скрипт, но из-за моей криворукости дублирует даты:

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SELECT 
CASE WHEN type_document IN ('23', '42', '32', '64') THEN 'Паспорт'
         WHEN type_document IN ('1', '39', '87', '67') THEN 'ИНН'
         WHEN type_document IN ('2', '36', '31', '94') THEN 'Снилс'
END "Типы документов",
CASE WHEN created_ru IN ('popov_s', 'smirnov_m', 'fedorov_p', 'savelov_t') THEN 'Сотрудники1'
         WHEN created_ru IN ('nikonov_a', 'platov_m', 'carinov_p', 'tatarkov_t') THEN 'Сотрудники2'
END "Типы документов",
TO_CHAR(creation_date, 'mm.yyyy') AS Год,
CASE 
        WHEN type_document IN ('23', '42', '32', '64') OR id_client >= 1 THEN '1'
        WHEN type_document IN ('1', '39', '87', '67')   OR id_client >= 1 THEN '1'
        WHEN type_document IN ('2', '36', '31', '94')   OR id_client >= 1 THEN '1'
END "Количество"
FROM accounts_ru
WHERE created_ru IN ('popov_s', 'smirnov_m', 'fedorov_p', 'savelov_t', 'nikonov_a', 'platov_m', 'carinov_p', 'tatarkov_t')
AND type_document IN ('23', '42', '32', '64', '1', '39', '87', '67', '2', '36', '31', '94')
GROUP BY type_document, TO_CHAR(creation_date, 'mm.yyyy'), id_client, created_ru
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.02.2023, 19:19
Ответы с готовыми решениями:

Как вывести массивы без дублей
Всем доброго времени суток. Имеется такой код <?php while ($rowTest =...

Вывести количество элементов матрицы без дублей
вывести кол-во элементов без дублей #include <iostream> #include <iomanip> using namespace std; int main() { int i, j, str,...

Запрос в IBExpert (вывести данные без дублей и исключить повторы по коду)
Хочу написать запрос для таблицы. Таблица: КОД ИМЯ ФАМИЛИЯ КАРДКОД ...

4
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
03.02.2023, 15:57
Я бы десяток union all сделал. Да тупо, но работало бы.

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT
    'Паспорт' AS "Типы документов",
    'Сотрудники1' AS "Трикси!!!",
    COUNT(*) AS cnt,
    id_client
FROM
    accounts_ru
WHERE
    created_ru IN ('popov_s', 'smirnov_m', 'fedorov_p', 'savelov_t')
AND type_document IN ('23', '42', '32', '64')
GROUP BY
    id_client;
 
--union all
1
941 / 118 / 28
Регистрация: 28.11.2018
Сообщений: 300
03.02.2023, 22:26
Цитата Сообщение от NeoKlip Посмотреть сообщение
Надеюсь вопрос понятен.
Если честно - вопрос вообще непонятен. И пример запроса - тоже. У вас в запросе CASE не содержит условия ELSE, что приведет к ошибке, если ни одно условие не выполнится. А если такое невозможно (одно из условий всегда выполняется), то весь второй CASE можно просто заменить числом 1.
Попробуйте привести пример данных: исходные такие-то, результат такой-то.
0
 Аватар для Аватар
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
04.02.2023, 12:47
да там скорее всего инерпретируя авторский лепет нужно сначало в подзапросе получить поля Типы документов, Год и Типы документов, кейсы правильно сделать при этом, а потом во внешнем запрсе группировать уже по вычисленным полям, а не исходным
0
941 / 118 / 28
Регистрация: 28.11.2018
Сообщений: 300
04.02.2023, 14:35
Аватар, может быть… А может и нет ))
Давайте попробуем сыграть в угадайку… Как я понял. У одного сотрудника может быть несколько клиентов, у одного клиента - несколько документов, на каждый документ в таблице - одна строка. А вывести надо фактически количество разных клиентов на одного сотрудника? Тогда ему не хватает что-то типа count(distinct id_client) в качестве искомого "количества"?

Ну вот как понял, так и написал ))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.02.2023, 14:35
Помогаю со студенческими работами здесь

Поиск дублей в строках из 10 столбцов, суммирование дублей по полю и удаление дублей
Добрый день! Ребята, очень нужна помощь! Необходимо в MS Excel выявить дубли по строкам, состоящим из 10 столбцов. Дубли удалить, но...

Информация о сотрудниках предприятия содержит: Ф.И.О., номер отдела, должность, дату начала работы. Вывести списки сотрудников по отделам в порядке уб
Информация о сотрудниках предприятия содержит: Ф.И.О., номер отдела, должность, дату начала работы. Вывести списки сотрудников по отделам в...

Вывести список сотрудников, которые не являются инженерами
В базе данных «Проектная организация» спроектировать SQL- запрос: «Вывести список сотрудников 5-го и 8-го отделов, которые не являются...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru