3

Нужен совет по LibreOffice Base (SQL в том числе)1

Друзья, задумал немного помочь себе и упростить работу. В свободное время решил соорудить базу данных выполненных работ по участку и потраченных на это материалов. Когда-то успешно делал себе "помогалки" в MS Access (в 90ых ещё), поэтому выбрал LibreOffice Base. Структура вот такая:

Таблицы БД со связями

Таблицы БД со связями

Форму для заполнения сделал. Заполняется, хранит данные. Отчёт по всем тратам отдельно создать - не проблема, получилось. Это без условий и без формул, просто списком.
Но никак не могу осилить отчёт, в котором бы выдавалась сумма по каждому адресу - сколько потрачено каждого вида материала. Типа,
Май:
Адрес1:
материал1 - 1
материал2 -3
Адрес2:
материал1 - 2
материал3 -4


Гуглил-яндексил, пытался по наитию, ничего не получается. Наверное, если просижу пару недель, изучая всё к ряду, то осилю... но подсказка бы ускорила.
Конечно, без рейтинга. Не знал, в какое сообщество отправить, но, надеюсь, не ошибся, ибо запрос-то на SQL писать придётся))) - долго ждать модерации, публикую без сообщества.
Заранее благодарен!
(Есть и второй вопрос - никак не могу придумать, как сделать типовые работы - чтобы кнопочку нажал, и автоматически заполнились поля формы, создались записи в таблице с расходами материалов)

2
Всем ЖаБЪ!
Автор поста оценил этот комментарий
ответный пост

Итак, решение найдено с помощью очень хорошего и талантливого человека, который тоже есть на Пикабу, но свело нас не Пикабу, а творчество. Огромное спасибо ей и за решение, и за творчество! Как и обещал ранее, публикую решение тут, вдруг кому пригодится. Запрос написан очень красиво и понятно, легко разобраться. ИМХО по таким примерам очень удобно изучать SQL. Да и @Avenir.Sirgun хотел взглянуть)))
Итак, вот запрос, который решает:

SELECT

YEAR(R.ДатаРасход) AS Год,

MONTH(R.ДатаРасход) AS Месяц,

A.Адрес,

M.НазваниеМатериал,

SUM(R.КолвоМатериала) AS Количество

FROM Расходы AS R

JOIN Работы AS W ON R.IDРабот = W.IDРабот

JOIN Адреса AS A ON W.IDАдреса = A.IDАдрес

JOIN Материалы AS M ON R.IDМатериала = M.IDМатериал

GROUP BY

YEAR(R.ДатаРасход),

MONTH(R.ДатаРасход),

A.Адрес,

M.НазваниеМатериал

ORDER BY

Год,

Месяц,

A.Адрес,

M.НазваниеМатериал;

Структура БД есть в изначальном посте.
Далее уже можно модифицировать, если надо.
Задача решена! Ура! Ещё раз огромное спасибо, В..., ты очень мне помогла! (не тегаю, т.к. не получал на то дозволения)

Показать полностью
комментарии (0)
1
Автор поста оценил этот комментарий

чем закончились, продолжились ваши подвиги ? )

раскрыть ветку (1)
1
Всем ЖаБЪ!
Автор поста оценил этот комментарий

Очень хорошая девушка написала запрос, который скорее всего решит задачу. Написала и объяснила принципы, как оно работает и как такое писать. Но пока не дошли руки, т.к. надо было срочно ехать в столицу на творческую встречу... в том числе и с той хорошей и талантливой девушкой. Сегодня разгребал рабочие вопросы, что накопились, и как раз в ближайшее время собираюсь применить полученный запрос, попробовать его в деле. Само собой, как только заработает, сразу опубликую решение тут. (Посты мои обычно рейтинга не набирают вообще, но мало ли... может кто просто поиском найдёт)

показать ответы
1
Автор поста оценил этот комментарий

вариант1: тогда sql типа sqlite, MariaDB, cowsql , PostgreSQL,
или другая это судьба ,
к LibreOffice Base ее подключают чз локалку,
манипуляции через пользовательские функции.

вариант2: изучи язык запросов LibreOffice Base

вариант3: купить 1с предприятие

раскрыть ветку (1)
1
Всем ЖаБЪ!
Автор поста оценил этот комментарий

Там обычный SQL вполне работает. Ладно, просто обращусь к документации.

показать ответы
1
Автор поста оценил этот комментарий
По второму вопросу: необходимо создать субформу с соответствующими полями. Я такое делаю с чатжпт, вполне успешно. Рекомендую.
раскрыть ветку (1)
0
Всем ЖаБЪ!
Автор поста оценил этот комментарий

Субформа в форме у меня есть, само собой. Внутри основной формы - табличка с потраченными материалами (название, количество, дата расхода). Но туда вручную надо добавлять данные. А чтобы кнопку нажал - и сразу автоматом в таблицу добавились две-три записи со стандартными значениями и с привязкой к нужной записи в основной таблице - это другое. Но, кажется, я пока разбирался, понял, что это можно реализовать через тот же SQL :)
А с ИИ... не интересно, запрос не "ламповый" будет, бездушный! )))

показать ответы
0
Автор поста оценил этот комментарий

вариант4: купить 1с склад

раскрыть ветку (1)
0
Всем ЖаБЪ!
Автор поста оценил этот комментарий

Да-да, знаю. Если прийти в Лигу Электриков и задать вопрос, то большинство ответит "Найми нормального электрика, дурень!".
Спасибо, но я хочу разобраться в Base.

Автор поста оценил этот комментарий
Я бы ещё по дипсикать или поперфлексить попробовал, это то что из бесплатных. Можно прям этот пост скормить, но модель бд наверное все же придется както словами описать, дипсик скорее всего схему с картинки не распознает, но можно и её попытаться скормить
раскрыть ветку (1)
0
Всем ЖаБЪ!
Автор поста оценил этот комментарий

Ты пьяный что ли? Проспись

0
Автор поста оценил этот комментарий

в примере эскулайт такая же структура как у тебя,
я пробовал к ней оболочку dbeaver.
очень наглядно. низкие системные требования.
пока не изучил язык запросов. может потом.


когда это изучил, то более сложная бд пойдёт легче.
__мне всё равно, нет выгоды. тебе виднее.

раскрыть ветку (1)
0
Всем ЖаБЪ!
Автор поста оценил этот комментарий

Дык...в том и дело, что мне надо это развернуть ещё на трёх машинах у мастеров участка. Им бы вот мсофисно-близкое, было бы хорошо. С системными требованиями явно проблем не будет. (Да, мой комп 10го года, но вот как раз с железом - это моё, всё летает)

А изучить SQL... Когда буду его недурно знать, сам буду тут на вопросы отвечать)

показать ответы
1
Автор поста оценил этот комментарий

SELECT работы. Датаработ ММ, адреса. Адрес, материалы. НазваниеМатериал, SUM(расходы. Колвоматериала) FROM работы, адреса, материалы, расходы WHERE работы. Idработ=расходы.idработ AND расходы. Idматериал=материалы.idматериал AND работы. Idадрес=адреса.idадрес AND работы. Датаработ ММ=5 GROUP BY работы. Датаработ ММ, адреса. Адрес, материалы. НазваниеМатериал

раскрыть ветку (1)
0
Всем ЖаБЪ!
Автор поста оценил этот комментарий

Вот что-то такое я писал, и получал ошибку

показать ответы
0
Автор поста оценил этот комментарий

Что-то типа SELECT работы. Датаработ ММ, адреса. Адрес, материалы. НазваниеМатериал, расходы. Колвоматериала FROM работы, адреса, материалы, расходы WHERE работы. Idработ=расходы.idработ AND расходы. Idматериал=материалы.idматериал AND работы. Idадрес=адреса.idадрес AND работы. Датаработ ММ=5

раскрыть ветку (1)
0
Всем ЖаБЪ!
Автор поста оценил этот комментарий

А где тут суммирование по материалам-то? Это будет каждый расход отдельно. А там за месяц Материал1 мог расходоваться 5 раз, и надо сложить все по каждому материалу.

показать ответы
0
Автор поста оценил этот комментарий

получится когда прочитаешь всю документацию.

а если нет , то к sqlite обратись она попроще и документации, примеров больше найдёшь

раскрыть ветку (1)
0
Всем ЖаБЪ!
Автор поста оценил этот комментарий

Хорошо, буду иметь в виду, спасибо. Но, КМК, если на CQLite решу, то решу и в другой СУБД со схожим языком запросов.

А вообще - это классика))))
"Есть задача перевезти вещи на дачу. Имею права кат.B, поэтому купил себе микроавтобус газель. Уже загрузил в него большую часть, осталось только диван запихать, мешает обшивка салона, нужно снять. Подскажите, как это делается на Газели?"
-"Чувак, у меня есть инструкция по ЗИЛам, очень рекомендую, там нет обшивки салона, нет даже самого салона, снимать ничего не придётся, грузоподъёмность выше! Фиг с ним с комфортом, на комфорт только неженки смотрят!"

показать ответы
0
Автор поста оценил этот комментарий

sqlite + интерфейс годится ?

раскрыть ветку (1)
0
Всем ЖаБЪ!
Автор поста оценил этот комментарий

А что, решить задачу в рамках уже созданной БД на базе СУБД Base не получится?) Мне кажется, что получится. Просто не могу сообразить как построить запрос, чтобы он выдавал нужное.

показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества