Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Почему не работает или так нельзя? / 13 сообщений из 13, страница 1 из 1
28.09.2018, 15:18
    #39709905
Валерий666
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает или так нельзя?
Есть вот такой запрос:
Код: sql
1.
2.
3.
4.
SELECT *,GROUP_CONCAT(execute.exefio ORDER BY execute.exenum SEPARATOR '\n') as exe 
FROM register  LEFT JOIN execute ON register.docid = execute.docid 
 WHERE (register.docid<>0) AND (datecreate between '2018-09-01' AND '2018-09-28')
 AND (exe LIKE '%Мигован А.К.%') GROUP BY register.docid



Ругается на то что отсутствует поле "exe", хотя представления коннектор вроде как впитывает, т.е. запрос а ля:
Код: sql
1.
2.
3.
4.
SELECT *,GROUP_CONCAT(execute.exefio ORDER BY execute.exenum SEPARATOR '\n') as exe 
FROM register  LEFT JOIN execute ON register.docid = execute.docid 
 WHERE (register.docid<>0) AND (datecreate between '2018-09-01' AND '2018-09-28')
GROUP BY register.docid




Проходит на ура...
Delphi 7, MyDAC 8.4. Что посоветуете? Как обратиться тогда к группируемому полю?
...
Рейтинг: 0 / 0
28.09.2018, 15:23
    #39709910
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает или так нельзя?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
Select * From
(
SELECT *,GROUP_CONCAT(execute.exefio ORDER BY execute.exenum SEPARATOR '\n') as exe 
FROM register  LEFT JOIN execute ON register.docid = execute.docid 
 WHERE (register.docid<>0) AND (datecreate between '2018-09-01' AND '2018-09-28')
GROUP BY register.docid
) a
 Where (a.exe LIKE '%Мигован А.К.%')
...
Рейтинг: 0 / 0
28.09.2018, 15:24
    #39709914
Валерий666
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает или так нельзя?
defecator
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
Select * From
(
SELECT *,GROUP_CONCAT(execute.exefio ORDER BY execute.exenum SEPARATOR '\n') as exe 
FROM register  LEFT JOIN execute ON register.docid = execute.docid 
 WHERE (register.docid<>0) AND (datecreate between '2018-09-01' AND '2018-09-28')
GROUP BY register.docid
) a
 Where (a.exe LIKE '%Мигован А.К.%')


эммм, ругается на дубликат поля, в register есть поле id уникальное.
...
Рейтинг: 0 / 0
28.09.2018, 15:31
    #39709921
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает или так нельзя?
Валерий666Что посоветуете?Читать документацию
Валерий666Как обратиться тогда к группируемому полю?Использовать HAVING
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT
  *,
  GROUP_CONCAT(execute.exefio ORDER BY execute.exenum SEPARATOR '\n') as exe 
FROM
  register
  LEFT JOIN execute ON register.docid = execute.docid 
WHERE
  (register.docid<>0) AND
  (datecreate between '2018-09-01' AND '2018-09-28')
GROUP BY
  register.docid
HAVING
  exe LIKE '%Мигован А.К.%'
...
Рейтинг: 0 / 0
28.09.2018, 15:32
    #39709924
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает или так нельзя?
Валерий666defecator
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
Select * From
(
SELECT *,GROUP_CONCAT(execute.exefio ORDER BY execute.exenum SEPARATOR '\n') as exe 
FROM register  LEFT JOIN execute ON register.docid = execute.docid 
 WHERE (register.docid<>0) AND (datecreate between '2018-09-01' AND '2018-09-28')
GROUP BY register.docid
) a
 Where (a.exe LIKE '%Мигован А.К.%')



эммм, ругается на дубликат поля, в register есть поле id уникальное.
ну сделай ему алиас, тем более, тащить поля через * считается дурнейшим тоном
...
Рейтинг: 0 / 0
28.09.2018, 19:04
    #39710095
AWSVladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает или так нельзя?
defecatorну сделай ему алиас, тем более, тащить поля через * считается дурнейшим тоном
А вот нЭнадо на * бочку катить :)
Постоянно пользуюсь, но правда всегда с алиасом.
...
Рейтинг: 0 / 0
28.09.2018, 21:06
    #39710133
bk0010
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает или так нельзя?
AWSVladimirdefecatorну сделай ему алиас, тем более, тащить поля через * считается дурнейшим тоном
А вот нЭнадо на * бочку катить :)
Постоянно пользуюсь, но правда всегда с алиасом.Очень зря: увеличиваете нагрузку на сервер, организуете мусорный трафик по сети, можете без необходимости вытащить из БД в сеть конфиденциальные данные, а если в таблице будет blob, то получите тормоза на пустом месте (может даже засрете весь кэш у сервера, если блоб лежит рядом с базой, а не в blobdbspace)
...
Рейтинг: 0 / 0
28.09.2018, 21:38
    #39710143
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает или так нельзя?
bk0010AWSVladimirпропущено...

А вот нЭнадо на * бочку катить :)
Постоянно пользуюсь, но правда всегда с алиасом.Очень зря: увеличиваете нагрузку на сервер, организуете мусорный трафик по сети, можете без необходимости вытащить из БД в сеть конфиденциальные данные, а если в таблице будет blob, то получите тормоза на пустом месте (может даже засрете весь кэш у сервера, если блоб лежит рядом с базой, а не в blobdbspace)
+100
звёздочка в запросе - признак пофигизма
...
Рейтинг: 0 / 0
29.09.2018, 00:12
    #39710182
AWSVladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает или так нельзя?
defecator+100
звёздочка в запросе - признак пофигизма
Нас админ базы всех построил, поэтому таблицы только с числовыми, только со строками и отдельные таблицы с блобами, миксов практически нет и если появляются, он с ними беспощадно борется..

Говорит, что ораклу тогда на порядок легче дышится из-за страничного чтения, поэтому если в датасете работаешь с таблицей, то более чем в 50% всю ее юзаешь.

Мало того. кроме основной таблицы с числовыми данными, есть таблицы со вспомогательными, по такой же системе.:)
В общем 3-я нормальная форма нам только снится :)
...
Рейтинг: 0 / 0
29.09.2018, 00:19
    #39710183
Котовасия
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает или так нельзя?
AWSVladimirdefecator+100
звёздочка в запросе - признак пофигизма
Нас админ базы всех построил, поэтому таблицы только с числовыми, только со строками и отдельные таблицы с блобами, миксов практически нет и если появляются, он с ними беспощадно борется..

Говорит, что ораклу тогда на порядок легче дышится из-за страничного чтения, поэтому если в датасете работаешь с таблицей, то более чем в 50% всю ее юзаешь.

Мало того. кроме основной таблицы с числовыми данными, есть таблицы со вспомогательными, по такой же системе.:)
В общем 3-я нормальная форма нам только снится :)
Ну и при чем тут "*"?
...
Рейтинг: 0 / 0
29.09.2018, 00:59
    #39710190
Котовасия
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает или так нельзя?
AWSVladimirdefecator+100
звёздочка в запросе - признак пофигизма
Нас админ базы всех построил, поэтому таблицы только ...
...
... :)
А вообще - п....ц какой-то. Админ рулит разработчиками, даже представить не могу.
...
Рейтинг: 0 / 0
29.09.2018, 02:43
    #39710209
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает или так нельзя?
bk0010Очень зря: увеличиваете нагрузку на сервер, организуете мусорный трафик по сетиМожно подумать, перечислив все полю поименно вместо звездочки мусорного трафика не будет.
...
Рейтинг: 0 / 0
29.09.2018, 08:47
    #39710224
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не работает или так нельзя?
Relic Hunterbk0010Очень зря: увеличиваете нагрузку на сервер, организуете мусорный трафик по сетиМожно подумать, перечислив все полю поименно вместо звездочки мусорного трафика не будет.
очень-очень редко бывают нужны ну прямо все 100500 полей в запросе
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Почему не работает или так нельзя? / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]