Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
1

Добавить несколько записей в БД (sql)

21.10.2013, 18:05. Показов 1051. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, уважаемые форумчане. Помогите пожалуйста с sql-запросом.
Есть входная таблица с числовым полем num. Две записи 2009 и 2013.
Как нужно составить sql-запрос, чтобы получить 5 записей от 2009 до 2013. Никак не могу сообразить.

Пример очень утрированный. Это необходимо, чтобы посчитать некоторые проценты, которые зависят от количества дней в году.

Заранее, спасибо, откликнувшимся.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2013, 18:05
Ответы с готовыми решениями:

Добавить несколько записей с картинкой в БД
Здравствуйте,я столкнулся с проблемой добавления картинки в БД, вернее все добавляется и картинки и...

Ка добавить несколько записей в одну табличку?
Здравствуйте, прошу помочь мне так как с SQL могу делать только не сложные запросы. Нужно помочь с...

Как добавить несколько записей в базу через одну кнопку?
Вручную сделал скрин что бы понять? Как можно сделать?

Как с помощью SQL запроса вставить сразу несколько записей?
Возможно ли с помощью SQL запроса вставить несколько записей, что то вроде этого:...

8
3356 / 1775 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
21.10.2013, 18:42 2
1. Создаете запрос Digits (необходим для итогового запроса)
Кликните здесь для просмотра всего текста
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SELECT TOP 1 0 AS digit FROM MSysObjects
UNION ALL
SELECT TOP 1 1 FROM MSysObjects
UNION ALL 
SELECT TOP 1 2 FROM MSysObjects
UNION ALL
SELECT TOP 1 3 FROM MSysObjects
UNION ALL
SELECT TOP 1 4 FROM MSysObjects
UNION ALL
SELECT TOP 1 5 FROM MSysObjects
UNION ALL
SELECT TOP 1 6 FROM MSysObjects
UNION ALL
SELECT TOP 1 7 FROM MSysObjects
UNION ALL
SELECT TOP 1 8 FROM MSysObjects
UNION ALL SELECT TOP 1 9 FROM MSysObjects;


2. Выполняете запрос:
Кликните здесь для просмотра всего текста
SQL
1
2
3
4
5
6
SELECT D.n AS [Последовательно числа]
FROM Таблица RIGHT JOIN 
     (SELECT (D4.digit & D3.digit & D2.digit & D1.digit & D0.digit)+1 AS n
      FROM Digits AS D0, Digits AS D1, Digits AS D2, Digits AS D3, Digits AS D4) AS D 
ON Таблица.Num=D.n
WHERE D.n>=(SELECT MIN(Таблица.Num) FROM Таблица) AND  D.n<=(SELECT MAX(Таблица.Num) FROM Таблица)
2
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
21.10.2013, 18:47 3
С использованием запроса Digits (автор Bonim)
SQL
1
2
3
SELECT n+dmin("num", "Таблица")-1 AS numd
FROM (SELECT (D2.digit & D1.digit & D0.digit)+1 AS n FROM Digits AS D0, Digits AS D1, Digits AS D2)  AS q
WHERE n <=dmax("num", "Таблица")-dmin("num", "Таблица")+1
Запрос Digits
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT TOP 1 0 AS digit FROM msysobjects
UNION ALL
SELECT TOP 1 1 FROM msysobjects
UNION ALL 
SELECT TOP 1 2 FROM msysobjects
UNION ALL
SELECT TOP 1 3 FROM msysobjects
UNION ALL
SELECT TOP 1 4 FROM msysobjects
UNION ALL
SELECT TOP 1 5 FROM msysobjects
UNION ALL
SELECT TOP 1 6 FROM msysobjects
UNION ALL
SELECT TOP 1 7 FROM msysobjects
UNION ALL
SELECT TOP 1 8 FROM msysobjects
UNION ALL 
SELECT TOP 1 9 FROM msysobjects;
Млжно добавлять до тысячи лет :-)

Добавлено через 47 секунд
Ой, как опоздал :-)
2
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
21.10.2013, 18:52  [ТС] 4
Спасибо, друзья. Очень выручили. Век живи, век учись.

Добавлено через 3 минуты
Цитата Сообщение от mobile Посмотреть сообщение
Ой, как опоздал :-)
mobile, Ваш запрос работает быстрее.
1
3356 / 1775 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
21.10.2013, 19:02 5
Цитата Сообщение от Waddonator Посмотреть сообщение
mobile, Ваш запрос работает быстрее.
Потому как:
SQL
1
(D2.digit & D1.digit & D0.digit)
вместо моего:
SQL
1
(D4.digit & D3.digit & D2.digit & D1.digit & D0.digit)
Плюс DMax/DMin вместо Select-а..
mobile крут)
1
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
21.10.2013, 19:23 6
Нет, дело не в количестве дигитсов и не в дмаксах. Это сотые секунды, не почувствуешь разницу на более или менее приличном компе. Дело в ненужном джойне. Он тормозит без индексов. А их нет...
2
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
21.11.2013, 17:09  [ТС] 7
И снова, доброго времени суток, уважаемые форумчане.

Та же самая задача, только теперь упомянутое поле num типа дата/время. Использую только дату. Между двумя датами необходимо проставить все последние числа каждого месяца.
Например в Таблице две записи:
12.11.2011
10.12.2012

В итоге необходимо получить:
30.11.2011
31.01.2012
...
30.11.2012
31.12.2012

Уже который час бьюсь, никак не могу придумать. Уповаю на вашу помощь.
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
21.11.2013, 17:39 8
Waddonator, попробуйте запрос. "Dates" это таблица с датами в поле "dt"
SQL
1
2
3
4
5
SELECT dateadd("m",n, q1.mn) AS dr, dateserial(YEAR(dr), MONTH(dr)+1,0) AS LastNumber
FROM
(SELECT MIN(dt) AS mn, MAX(dt) AS mx, datediff("m", mn, mx) AS delta FROM dates) q1,
(SELECT (D2.digit & D1.digit & D0.digit)+1 AS n FROM Digits AS D0, Digits AS D1, Digits AS D2)  AS q2
WHERE n<=q1.delta+1
1
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
21.11.2013, 17:49  [ТС] 9
mobile, огромное спасибо! Сейчас попробую.

Добавлено через 5 минут
Нет слов!
0
21.11.2013, 17:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.11.2013, 17:49
Помогаю со студенческими работами здесь

Как добавить в таблицу mdb файла Аксесса несколько записей одним запросом?
Собственно вопрос в теме. Искал по инету, но ничего путного не нашел. (хотя, может быть плохо...

Упорядочить файл записей методом отыскания наименьшего. Добавить несколько новых элементов
Создать файл записей, полями которого являются фамилия и рост. Используя метод отыскания...

Как добавить несколько записей из таблицы в ячейку другой таблицы через запятую?
имеется бд кулинарная книга, где при добавлении блюда, продукты добавлялись через запятую, по...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru