Вложенный запрос SELECT ... FROM (SELECT ...)
Вложенный запрос SELECT ... FROM (SELECT ...)
вопрос: поддерживает ли IB7.5 конструкции типа SELECT ... FROM (SELECT ...)?
если не поддерживает, то подскажите как решить такую задачу:
есть справочник сотрудников, в нем ФИО разбито на 3 поля
нужно сделать выборку с группировкой по сотрудникам, что-то вроде
SELECT name_last ||' '|| name_first ||' '|| name_middle Name, COUNT(*) col FROM sometable LEFT JOIN spr_user ON spr_iser.id_user=sometable.id_user
WHERE ...
GROUP BY name_last ||' '|| name_first ||' '|| name_middle
проблема в том, что не дает делать группировку по name_last ||' '|| name_first ||' '|| name_middle и по Name тоже не дает, поэтому пытался сделать с помощью вложенного запроса, чтобы сгруппировать.
или можно как-то по-другому решить эту проблему?
можно, конечно, view сделать, но у меня общий вопрос про группировку по составному текстовому полю и возможность вложенного запроса.
если не поддерживает, то подскажите как решить такую задачу:
есть справочник сотрудников, в нем ФИО разбито на 3 поля
нужно сделать выборку с группировкой по сотрудникам, что-то вроде
SELECT name_last ||' '|| name_first ||' '|| name_middle Name, COUNT(*) col FROM sometable LEFT JOIN spr_user ON spr_iser.id_user=sometable.id_user
WHERE ...
GROUP BY name_last ||' '|| name_first ||' '|| name_middle
проблема в том, что не дает делать группировку по name_last ||' '|| name_first ||' '|| name_middle и по Name тоже не дает, поэтому пытался сделать с помощью вложенного запроса, чтобы сгруппировать.
или можно как-то по-другому решить эту проблему?
можно, конечно, view сделать, но у меня общий вопрос про группировку по составному текстовому полю и возможность вложенного запроса.
Re: Вложенный запрос SELECT ... FROM (SELECT ...)
Если он у тебя стоит (раз ты задачу для него решаешь), то как насчёт попробовать?Батор писал(а):поддерживает ли IB7.5 конструкции типа SELECT ... FROM (SELECT ...)?
А ещё попробуй GROUP BY 1
Re: Вложенный запрос SELECT ... FROM (SELECT ...)
пробовал - чего-то не выходит... но может я чего не знаю, например в MSSQL для этого обязательно надо AS добавлять: SELECT ... FROM (SELECT ...) AS SomethingWildSery писал(а):Если он у тебя стоит (раз ты задачу для него решаешь), то как насчёт попробовать?
для ORDER BY срабатывает, а для GROUP BY нетWildSery писал(а): А ещё попробуй GROUP BY 1
Вообще, что это я?
Код: Выделить всё
SELECT name_last ||' '|| name_first ||' '|| name_middle Name,
(select COUNT(*) FROM sometable where s.id_user=id_user)
FROM spr_user s
WHERE ...
в целевом запросе несколько объединений и группировка по куче полей, а пример для простоты понимания проблемы привелWildSery писал(а):Вообще, что это я?Код: Выделить всё
SELECT name_last ||' '|| name_first ||' '|| name_middle Name, (select COUNT(*) FROM sometable where s.id_user=id_user) FROM spr_user s WHERE ...
Ага, значит, ты думаешь, что если тебе найти простое и быстрое решение для упрощённого запроса, то применив его в своём большом, получишь тот же результат?Батор писал(а):в целевом запросе несколько объединений и группировка по куче полей, а пример для простоты понимания проблемы привел
Наивный
Ну сделай так, если не боишься NULLов.
Код: Выделить всё
SELECT name_last ||' '|| name_first ||' '|| name_middle Name
...
GROUP BY name_last, name_first, name_middle
Re: Вложенный запрос SELECT ... FROM (SELECT ...)
вот кстати хороший вопрос а вот с таким запросом как быть?
select extract(month from doc_date), totalrub from dochead
group by ....
хотелось бы сделать группировку по месяцу а не под дате как
это возможно сделать, товарищ говорит что в файрбирде можно сделать
group by 1 и будет счастье... в ибейзе что-то я такого не пронаблюдал
select extract(month from doc_date), totalrub from dochead
group by ....
хотелось бы сделать группировку по месяцу а не под дате как
это возможно сделать, товарищ говорит что в файрбирде можно сделать
group by 1 и будет счастье... в ибейзе что-то я такого не пронаблюдал