Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Запрос в LibreOffice Base  (Прочитано 3452 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kaziev-95

  • Автор темы
  • Участник
  • *
  • Сообщений: 228
  • Ставь Ubuntu
    • Просмотр профиля
    • Убунту для жизни
Запрос в LibreOffice Base
« : 12 Августа 2015, 20:55:19 »
Доброго времени суток. Есть база данных в LibreOffice Base с таблицей Клиенты.  В этой таблице есть столбцы ID, Наименование, Дата обновления, Доп. информация и тд.

1.Нужно создать запрос, чтобы отображались все клиенты, с даты обновления которых прошел год и более.
2.Нужно создать форму для поиска клиентов по наименованию.

Заранее спасибо за помощь.

Оффлайн spk-ubuntu

  • Активист
  • *
  • Сообщений: 502
    • Просмотр профиля
Re: Запрос в LibreOffice Base
« Ответ #1 : 12 Августа 2015, 21:39:09 »
Ни разу не открывал LibreOffice Base и, честно говоря, вообще не думал что его кто-то использует.  :)
Вы куда-нибудь пример своей базы положите с какими-нибудь тестовыми данными.

Оффлайн kaziev-95

  • Автор темы
  • Участник
  • *
  • Сообщений: 228
  • Ставь Ubuntu
    • Просмотр профиля
    • Убунту для жизни
Re: Запрос в LibreOffice Base
« Ответ #2 : 12 Августа 2015, 22:14:26 »
Просто мне на работе нужен Base, а лицензий на Access (я рад этому) нет. Я выложил бы пример, но мне самому надо научиться этому.

Оффлайн spk-ubuntu

  • Активист
  • *
  • Сообщений: 502
    • Просмотр профиля
Re: Запрос в LibreOffice Base
« Ответ #3 : 13 Августа 2015, 00:37:04 »
т.е. на данный момент ничего нет? даже базы с таблицей Клиенты?

Оффлайн tagezi

  • Активист
  • *
  • Сообщений: 359
    • Просмотр профиля
    • Информатика в экономике и управлении
Re: Запрос в LibreOffice Base
« Ответ #4 : 13 Августа 2015, 13:58:40 »
Просто мне на работе нужен Base, а лицензий на Access (я рад этому) нет. Я выложил бы пример, но мне самому надо научиться этому.
https://wiki.documentfoundation.org/images/e/e8/BH40-BaseHandbook.pdf на английском для версии 4.0
http://de.libreoffice.org/get-help/documentation/ на немецком для 5.0 (мотайте почти в самый низ)
Другого пока нет, на русский базы не переводили.
https://help.libreoffice.org/Common/Database_1/ru
Это Хелп на русском.
ASUS K53E, intel i5, 8 Gb, Integrated Intel® GMA HD
wiki LibreOffice
справка LibreOffice

Оффлайн spk-ubuntu

  • Активист
  • *
  • Сообщений: 502
    • Просмотр профиля
Re: Запрос в LibreOffice Base
« Ответ #5 : 13 Августа 2015, 14:49:12 »
Для начала хотя бы http://rus-linux.net/MyLDP/BOOKS/spo_in_office/strukt/base.html
По п.1 "Нужно создать запрос, чтобы отображались все клиенты, с даты обновления которых прошел год и более". К своему удивлению не нашёл функцию DATEADD(), поэтому самое короткое что у меня на данный момент получилось это:
SELECT * FROM "Клиенты"
WHERE
  DATEDIFF('month', "ДатаОбновления", CURDATE()) > 12
  or (DATEDIFF('month', "ДатаОбновления", CURDATE()) = 12
      and DAY(CURDATE()) > DAY("ДатаОбновления"))

Оффлайн Olej

  • Забанен
  • Активист
  • *
  • Сообщений: 884
    • Просмотр профиля
Re: Запрос в LibreOffice Base
« Ответ #6 : 13 Августа 2015, 14:53:16 »
К своему удивлению не нашёл функцию DATEADD(), поэтому самое короткое что у меня на данный момент получилось это:
SELECT * FROM "Клиенты"
WHERE
  DATEDIFF('month', "ДатаОбновления", CURDATE()) > 12
  or (DATEDIFF('month', "ДатаОбновления", CURDATE()) = 12
      and DAY(CURDATE()) > DAY("ДатаОбновления"))
Это уже пошли вопросы для раздела "Программирование", а не "Программное обеспечение" ... потому как SQL-программированиу уж, по крайней мере, больше "программирование", чем написание скриптов bash.

P.S. Это я не в осуждение здешних авторов, а скорее наоборот... ;)

Оффлайн spk-ubuntu

  • Активист
  • *
  • Сообщений: 502
    • Просмотр профиля
Re: Запрос в LibreOffice Base
« Ответ #7 : 13 Августа 2015, 17:57:16 »
Не то написал! Я написал "больше года"!
Год и более: SELECT * FROM "Клиенты" WHERE DATEDIFF( 'year', "ДатаОбновления", CURDATE( ) ) >= 1

Оффлайн kaziev-95

  • Автор темы
  • Участник
  • *
  • Сообщений: 228
  • Ставь Ubuntu
    • Просмотр профиля
    • Убунту для жизни
Re: Запрос в LibreOffice Base
« Ответ #8 : 14 Августа 2015, 19:47:32 »
Спасибо большое. Выручили.

Оффлайн cranger

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: Запрос в LibreOffice Base
« Ответ #9 : 30 Декабря 2015, 13:49:34 »
Перехожу постепенно на Линукс, может кто подкинет идею, в аксцесе есть таблица в строках  одной из колонок предложение, а не одно число или слово. Надо сделать запрос, чтобы выбирал, только по одному слову.
Например данные в строке одного столбца: произошло возгорание автомобиля.В другой строке этого же столбца : Сгорел дом, и т.д. Надо выбрать по слову " авто".
 

Оффлайн spk-ubuntu

  • Активист
  • *
  • Сообщений: 502
    • Просмотр профиля
Re: Запрос в LibreOffice Base
« Ответ #10 : 30 Декабря 2015, 17:56:29 »
Например данные в строке одного столбца: произошло возгорание автомобиля.В другой строке этого же столбца : Сгорел дом, и т.д. Надо выбрать по слову " авто".
cranger, я думаю, что Ваш вопрос имеет смысл выделить в отдельную тему, т.к. к изначальному вопросу он не имеет прямого отношения.
Теперь по существу.
Для отбора по подстроке в запросе можно использовать LIKE:
SELECT * FROM "TABLE1" WHERE "FIELD1" LIKE '%авто%'Фильтр по подстроке в форме обсуждался в https://forum.ubuntu.ru/index.php?topic=270443 ( начало тут - https://forum.ubuntu.ru/index.php?topic=269845 ).

 

Страница сгенерирована за 0.074 секунд. Запросов: 25.