Форум программистов, компьютерный форум, киберфорум
Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 21.05.2020
Сообщений: 15
1

Как обойти Group by

16.07.2021, 20:33. Показов 2252. Ответов 11

Author24 — интернет-сервис помощи студентам
В запросе выбираю текстовые и числовые поля и одно поле с условием. Например:
SQL
1
2
3
SELECT d.Категория, m.Численность, m.Премия, iif(d.Подраздел=12,'АУП', 'ПП') AS vid
FROM d,m
GROUP BY d.Категория, d.Подраздел
При этом запрос работает неправильно, т.к. сама суть его сгруппировать данные столбца d.Подраздел на АУП и ПП.
Возможно ли как-то избежать группировки group by по полю условия (d.Подраздел) или каким-то образом изменить group by?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.07.2021, 20:33
Ответы с готовыми решениями:

Как обойти group by?
Всем привет. Всем известно, что в group by должны находиться все поля из SELECT, к которым не...

Mixing of GROUP columns (MIN(),MAX(),COUNT(),.) with no GROUP columns is illegal if there is no GROUP BY clause
Такая ошибка: КОД: $result=mysql_query("SELECT description, min(schedule.date) as...

Vk_api.exceptions.ApiError: [27] Group authorization failed: method is unavailable with group auth
Пишу бота под вк. Этот код: from vk_api import VkApi vkSession =...

No suitable conversion function from "std::unique_ptr<Group, std::default_delete<Group>>" to "Group *" exists
Severity Code Description Project File Line Suppression State Error (active) E0413 no suitable...

11
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
16.07.2021, 21:28 2
Цитата Сообщение от Tangela Посмотреть сообщение
При этом запрос работает неправильно
запрос не может работать неправильно, он работает как ты его написал.
если он выдает не тот результат, значит ты неправ, а не запрос неправильный

во первых почитай про JOIN
во вторых у тебя 3 поля в select, а в группировке только 2
в третьих - выведи просто подраздел, а сгруппируй потом
0
0 / 0 / 0
Регистрация: 21.05.2020
Сообщений: 15
16.07.2021, 23:55  [ТС] 3
во-первых, полей в моем запросе намного больше, я для примера просто 4 привела, 2 из них числовые, они группируются путем суммирования (sum(d.Премия) и т.д.)
во-вторых, JOIN здесь при чем? Объединения в моем запросе работают правильно, без проблем. Повторюсь, это ПРИМЕР!!!! Запрос работает (!), но не группирует vid (результат выполнения условия)
в-третьих, если бы мне тупо нужно было вывести подраздел, я бы не писала сюда
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
17.07.2021, 11:04 4
вижу словами тут объяснять бесполезно

дай скрипт создания таблицы и наполнения данными
0
0 / 0 / 0
Регистрация: 21.05.2020
Сообщений: 15
17.07.2021, 13:16  [ТС] 5
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
rst = "SELECT U.КатБРП, Iif (D.`Код Подр`=1122,"АУП","ПП") as Pers , sum(t1." & vid & ") as 1, sum(t2." & vid & ") as 2, sum(t3." & vid & ") as 3, sum(t4." & vid & ") as 4, sum(t5." & vid & ") as 5, sum(t6." & vid & ") as 6 ," & _
      "sum(t7." & vid & ") as 7, sum(t8." & vid & ") as 8,sum(t9." & vid & ") as 9,sum(t10." & vid & ") as 10,sum(t11." & vid & ") as 11,sum(t12." & vid & ") as 12 " & _
      "FROM ((((((((((((([Excel 12.0;Database=" & FNM2 & ";HDR=Yes].[Usl$] AS U " & _
      "INNER JOIN [Excel 12.0;Database=" & FNM2 & ";HDR=Yes].[Dan$] As D ON (D.Катег2 = U.Катег2)) " & _
      "INNER  JOIN [Excel 12.0;Database=" & FNM2 & ";HDR=Yes]." & "[" & "январь" & "$]" & " As t1 ON (D.`Таб Ном`=t1.ТабНом)) " & _
      "INNER  JOIN [Excel 12.0;Database=" & FNM2 & ";HDR=Yes]." & "[" & "февраль" & "$]" & " As t2 ON (t1.ТабНом=t2.ТабНом)) " & _
      "INNER  JOIN [Excel 12.0;Database=" & FNM2 & ";HDR=Yes]." & "[" & "март" & "$]" & " As t3 ON (t2.ТабНом=t3.ТабНом)) " & _
      "INNER  JOIN [Excel 12.0;Database=" & FNM2 & ";HDR=Yes]." & "[" & "апрель" & "$]" & " As t4 ON (t3.ТабНом=t4.ТабНом)) " & _
      "INNER  JOIN [Excel 12.0;Database=" & FNM2 & ";HDR=Yes]." & "[" & "май" & "$]" & " As t5 ON (t4.ТабНом=t5.ТабНом)) " & _
      "INNER  JOIN [Excel 12.0;Database=" & FNM2 & ";HDR=Yes]." & "[" & "июнь" & "$]" & " As t6 ON (t5.ТабНом=t6.ТабНом)) " & _
      "INNER  JOIN [Excel 12.0;Database=" & FNM2 & ";HDR=Yes]." & "[" & "июль" & "$]" & " As t7 ON (t6.ТабНом=t7.ТабНом)) " & _
      "INNER  JOIN [Excel 12.0;Database=" & FNM2 & ";HDR=Yes]." & "[" & "август" & "$]" & " As t8 ON (t7.ТабНом=t8.ТабНом)) " & _
      "INNER  JOIN [Excel 12.0;Database=" & FNM2 & ";HDR=Yes]." & "[" & "сентябрь" & "$]" & " As t9 ON (t8.ТабНом=t9.ТабНом)) " & _
      "INNER  JOIN [Excel 12.0;Database=" & FNM2 & ";HDR=Yes]." & "[" & "октябрь" & "$]" & " As t10 ON (t9.ТабНом=t10.ТабНом)) " & _
      "INNER  JOIN [Excel 12.0;Database=" & FNM2 & ";HDR=Yes]." & "[" & "ноябрь" & "$]" & " As t11 ON (t10.ТабНом=t11.ТабНом)) " & _
      "INNER  JOIN [Excel 12.0;Database=" & FNM2 & ";HDR=Yes]." & "[" & "декабрь" & "$]" & " As t12 ON (t11.ТабНом=t12.ТабНом)) " & _
      "WhERE U.КатБРП<>'Неспис' " & _
      "GROUP BY U.КатБРП, D.`Код Подр`; "
0
1177 / 419 / 106
Регистрация: 31.03.2012
Сообщений: 1,145
17.07.2021, 14:40 6
Цитата Сообщение от Tangela Посмотреть сообщение
Повторюсь, это ПРИМЕР!!!! Запрос работает (!)
Два варианта: запрос работает или ...
Цитата Сообщение от Tangela Посмотреть сообщение
мне тупо нужно было вывести подраздел, я бы не писала сюда
а здесь несколько больше вариантов: не пИсать сюда, а писАть туда, выбери нужный
0
0 / 0 / 0
Регистрация: 21.05.2020
Сообщений: 15
17.07.2021, 15:06  [ТС] 7
Гениально! Спасибо за помощь!
0
1177 / 419 / 106
Регистрация: 31.03.2012
Сообщений: 1,145
17.07.2021, 15:25 8
Цитата Сообщение от qwertehok Посмотреть сообщение
дай скрипт создания таблицы и наполнения данными
А в ответ что видим ..., ну хотя бы пару десятков строк из своего excel-файла могла бы приложить, так нет жеШЬ
Цитата Сообщение от Tangela Посмотреть сообщение
Гениально! Спасибо за помощь!
был рад помочь
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
17.07.2021, 18:38 9
Лучший ответ Сообщение было отмечено Tangela как решение

Решение

Tangela,

у меня работает вот так
SQL
1
GROUP BY id, name, Iif (xxx=1,2,3)
Добавлено через 1 минуту
Это запрос внутри эксельки? запускается из VBA?
1
0 / 0 / 0
Регистрация: 21.05.2020
Сообщений: 15
18.07.2021, 13:17  [ТС] 10
Спасибо огромное!!!!!!

Добавлено через 4 минуты
Цитата Сообщение от qwertehok Посмотреть сообщение
Это запрос внутри эксельки? запускается из VBA?
да.
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
18.07.2021, 18:55 11
Цитата Сообщение от Tangela Посмотреть сообщение
да.
такие запросы обрабатываются драйвером, который указан в строке подключения

может вы перенесете логику в SQL Server? Sql отлично читает эксельки
0
0 / 0 / 0
Регистрация: 21.05.2020
Сообщений: 15
18.07.2021, 19:55  [ТС] 12
Цитата Сообщение от qwertehok Посмотреть сообщение
может вы перенесете логику в SQL Server? Sql отлично читает эксельки
К сожалению, я являюсь пользователем корпоративной сети, самостоятельная установка программных продуктов не возможна, приходится использовать "за что уплачено"
0
18.07.2021, 19:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.07.2021, 19:55
Помогаю со студенческими работами здесь

Не работает код [group] [group=5]
Столкнулся с такой проблемой, перестал работать код . Как я понимаю, этот код скрывает от...

QSqlTableModel GROUP BY, как ?
Добрый день, уважаемые специалисты! Обращаюсь к вам не по собственной воле. Судьба злодейка свела...

Как работает group by?
Как работает group by тут? Объясните код пожалуйста) namespace consoleApp { public class...

нет rdp! (как обойти?)+права администраторов часто как у пользователя! (как повысить?)
windows7/32 home basic edition нет рдп! (как обойти?) права администраторов часто как у...

Group by без группировки - как?
таблица &quot;Orders&quot;: O_Id OrderDate OrderPrice Customer 1 2008/11/12 1000 Hansen...

Как использовать вместе ORDER BY и GROUP BY?
Есть таблица id date than_helped_ua id_helped id date than_helped_ua...


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

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