-
Есть 2 связанные таблицы
1. работкики
Петров
Сидоров
иванов
2. выполненые работы
Уточнять не буду, что к чему, но результат запроса должен вывести
работников в одну строчку
например:
[дата] [Выполненные работы][Петров, Сидоров]
[дата] [Выполненные работы][Иванов, Сидоров]
-
Я понимаю то ли дело Oracle все может, но ADO Аccess это же полный экстрим.
-
> Уточнять не буду, что к чему
Объяснять не буду, что почему, но надо соединять.
-
> Ega23 © (02.09.13 11:13) [2]
ух ты крутой ответ... респект
-
> Ega23 © (02.09.13 11:13) [2]
Спасибо очень помогло, а то просто тупил и не знал как сделать, а то просто супер способ .... пойду чайку налью..
-
Конструктор запросов есть у аксеса, для снижения экстрима
-
> ух ты крутой ответ... респект
А то.
> Спасибо очень помогло
Незачто, обращайтесь завсегда например.
-
конструктор запросов в Акйессе неплох, сам все нарисует
там и разбирайся, как таблицы объединяются в sql-запросах
хотя все это есть в книжках, хелпе
и в основе довольно просто
тем более всего лишь для двух таблиц
-
>Дмитрий (02.09.13 16:22) [7]
не поняли вопрос?
перечитайте
речь не об объединении таблиц, а об агрегате над записями
>Разведка (02.09.13 10:52)
google: access aggregate strings
-
вы имеете в виду объединение в одно поле работников и выполненные работы?
>[дата] [Выполненные работы][Петров, Сидоров]
полагаю, что такое агрегирование одним запросом сделать нельзя
поскольку функция SUM() текстовые поля не складывает, а конкатенация в списке агрегатных функций отсутствует.
-
Можно извратиться и посредством ТРАНСФОРМ (перекрестного запроса) всех работников вытянуть в заголовки строк и потом сложить вторым запросом.
Но сложить произвольные работы...
-
> результат запроса должен вывести
> работников в одну строчку
> например:
> [дата] [Выполненные работы][Петров, Сидоров]
> [дата] [Выполненные работы][Иванов, Сидоров]
Дорогой , где у тебя в связанных таблицах [дата], по какому полю связь?
Нет структуры ни таблицы "работники", ни таблицы "выполненные работы", а ты говоришь о каком-то SQL запросе.
Если представишь структуры таблиц, возможно тебе и помогут с запросом ...
-
> полагаю, что такое агрегирование одним запросом сделать нельзя
Можно сделать всё, вопрос в затратах.
-
> Дорогой , где у тебя в связанных таблицах [дата], по какому полю связь?
> Нет структуры ни таблицы "работники", ни таблицы "выполненные работы", а ты говоришь о каком-то SQL запросе.
> Если представишь структуры таблиц, возможно тебе и помогут с запросом ...
Ну он же чётко написал, что уточнять не будет.
-
> Ega23 © (03.09.13 11:49) [13]
Ну он же чётко написал, что уточнять не будет.
Да уж ...
-
>Можно сделать всё, вопрос в затратах.
Бессмысленная очевидность.
Просветите меня, буду признателен, как рационально сложить строки в одну при группировке по дате таблицы.
[Дата1][Описание работы1]
[Дата1][Описание работы2]
[Дата1][Описание работы3]
[Дата2][Описание работы4]
...
Чтобы в итоге получить
[Дата1][Описание работы1 +Описание работы2+Описание работы3]
[Дата2][Описание работы4]
-
>Дмитрий (03.09.13 12:57) [15]
начнёте гуглить или продолжите глупить?
-
Написать функцию, в чём проблема-то?
-
> как рационально сложить
рационально не складывать. а просто например "развернуть" таблицу/результат группировки с помощью операции pivot table.
> Написать функцию, в чём проблема-то?
нет в access(в смысле jet а не программе) функций... но в принципе можно "помучится" и обойтись стандартными (VB), наверное... но только смысл? сильно затратный запрос получится, если вообще получится.
-
> нет в access(в смысле jet а не программе) функций
Да ладно????
-
развернуть с перекрестным запросом можно работников топикстартера
развернуть работы таким образом можно только если они все стандартизованы и их не слишком много
а это сомнительно
Ega23
и какую акцессную функцию вы предложите для агрегата по тексту в запросе?
очевидно, что написать функцию, перебирающие все строки и формурующую список возможно
только с практической точки зрения в этом нет смысла
также и для топика это не решение
-
> только с практической точки зрения в этом нет смысла
> также и для топика это не решение
Ну поскольку поциэнт уточнять отказался, что тут решение, а что нет - это сложно прованговать. Но лично мой опыт подсказывает мне, что такая "хотелка" - в одном-двух местах проекта будет встречаться. А значит персональную функцию написать смысл имеет.
-
Разведка = Дмитрий
???
-
Тема давно "свернута" ...
-
> Да ладно????
да точно. формально есть процедуры... но, можно ли назвать процедурой инструкцию из 1 (одного!) запроса. функций нет вообще.
-
+ опять имеется ввиду jet, а не программа access (там вообще можно и MSSQL базу подключить, и естественно сразу поиметь и нормальные процедуры и функции...)
-
>SQL ADO Access (04.09.13 17:14) [22]
никак нет
по сообщениям это должно быть ясно
>Ega23 © (04.09.13 17:12) [21]
>такая "хотелка" - в одном-двух местах проекта будет встречаться. А значит персональную функцию написать смысл имеет.
озвученная хотелка не очень осмысленна
а прописывать перебор и сложение всех значений вручную не комильфо
прежде чем писать такую функцию лучше уточнить тз
-
>Дмитрий (06.09.13 18:47) [26]
>озвученная хотелка не очень осмысленна
нормальное желание для отчетов
-
для отчетов как раз делается транспонирование таблицы (pivot как то там), и это у access есть ([18]). но тут же желают объединенную строку с данными.
-
>sniknik © (09.09.13 12:00) [28]
задачи транспонирования и создания агрегатного поля из строк(конкатенация с заданным разделителем) - разные задачи
телепатирую, что ТС хочет получить список фамилий в одном поле, сгруппированный по дате и работе
если это не так, то мильпардон
если это так, то pivot - непричём
-
>Кщд (09.09.13 13:20) [29]
прОшу прощення, не дочитал "sniknik © (09.09.13 12:00) [28]"
-
-
> ТС, судя по всему, желает:
http://allenbrowne.com/func-concat.htmlэто только для access, "внутри" access, функцией sql это назвать трудно, и с ADO(jet, из Delphi) работать не будет.
но вообще, по сути, да, он хочет этого, запросом. как написал.
-
>sniknik © (09.09.13 16:49) [32]
>и с ADO(jet, из Delphi) работать не будет.
каюсь, не знал
спасибо
-
Жаль, что в дискуссии не участвует старттопик.
Не понятно, что мы осуждаем ..
-
стартопику пох.