Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2012, 15:24   #41
anton__k
Пользователь
 
Регистрация: 01.09.2012
Сообщений: 22
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
при пустой main ?
Да. В пустую таблицу main запрос
INSERT INTO main ( value1, value2, value5, value4, value3 )
SELECT 'тест' AS value1, #9/1/2012# AS value2, 2 AS value5, (SELECT t1.ID FROM t1 WHERE t1.value2 = True), Sum (main.value5) + 1
FROM main
WHERE (((main.value2)=#9/1/2012#));

добавляет запись.
Но в выражении Sum (main.value5) + 1 - не плюсуется единица для первой записи за дату. Вторая запись Единицу плюсует.
Как приплюсовать значение к сумме пустой выборки?!
Значение по умолчанию в виде 1, исчезает после запроса.

Последний раз редактировалось anton__k; 02.09.2012 в 15:28.
anton__k вне форума Ответить с цитированием
Старый 02.09.2012, 15:27   #42
anton__k
Пользователь
 
Регистрация: 01.09.2012
Сообщений: 22
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
см #30 и #31. Тут либо чего то неправильно делаем, либо действительн с подзапросом дела туги.
из ссылки "Источник или конечный_объект может быть таблицей или запросом.", т.е. можно обмануть наверное и это. типа:
Код:
INSERT INTO таблица1 ( field1, field2 )
SELECT [Запрос2] AS f2,  'qweqwe' as f1;
, проверить только надо...
пробовал, не получилось.
anton__k вне форума Ответить с цитированием
Старый 02.09.2012, 15:32   #43
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

Цитата:
Да. В пустую таблицу main запрос
Что-то не верится.
eval вне форума Ответить с цитированием
Старый 02.09.2012, 15:37   #44
anton__k
Пользователь
 
Регистрация: 01.09.2012
Сообщений: 22
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
Что-то не верится.
Проверьте.

По единице идеи у кого-нибудь есть?)

Но в выражении Sum (main.value5) + 1 - не плюсуется единица для первой записи за дату. Вторая запись Единицу плюсует.
Вложения
Тип файла: rar Database1.rar (17.9 Кб, 7 просмотров)
anton__k вне форума Ответить с цитированием
Старый 02.09.2012, 15:51   #45
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

Цитата:
Проверьте.
Странно, както.
не плюсуется потому как: что-то + null = null
вот так должна - Nz(Sum(main.value5), 0) + 1
eval вне форума Ответить с цитированием
Старый 02.09.2012, 15:52   #46
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

Но такие выражения уже повод на сомнение в правильности архитектуры и/или действия.
eval вне форума Ответить с цитированием
Старый 02.09.2012, 16:05   #47
anton__k
Пользователь
 
Регистрация: 01.09.2012
Сообщений: 22
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
Но такие выражения уже повод на сомнение в правильности архитектуры и/или действия.
Увы пока идей по архитектуре нет.
Значение, записываемое в виде суммы значений другого поля в моей задаче играет существенное значение.

Окончательный вариант тестового запроса:

Код:
INSERT INTO main ( value1, value2, value5, value4, value3 )
SELECT 'тест' AS value1, #9/1/2012# AS value2, 1 AS value5, (SELECT t1.ID FROM t1 WHERE t1.value2 = True), Nz(Sum(main.value5), 0) + 1
FROM main
WHERE (((main.value2)=#9/1/2012#));

Всем ОГРОМНОЕ спасибо.
anton__k вне форума Ответить с цитированием
Старый 02.09.2012, 16:11   #48
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

Цитата:
Увы пока идей по архитектуре нет.
Надо знать проблему, потом идеи появляются, а иначе вот такие костыли.
eval вне форума Ответить с цитированием
Старый 02.09.2012, 16:19   #49
anton__k
Пользователь
 
Регистрация: 01.09.2012
Сообщений: 22
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
Надо знать проблему, потом идеи появляются, а иначе вот такие костыли.
Грубо говоря:
В целевую базу из приложения передаётся набор значений.
Часть значений - ссылки (ID) на записи во вспомогательных таблицах (некоторые известны, некоторые нет).
Соответственно те которые не известны (в данном случае одно) выдергивается SELECT'ом.
Затем на основании одной записи в БД формируется документ word (от одного до нескольких) с уникальным порядковым номером. Каждый день нумерация начинается с 1.
В нашем случае значение получаемое в результате SUM - это первый порядковый номер для документа (последующие номера идут как +1 в зависимости от кол-ва формируемых документов, количество - это суммируемое поле).
Соответственно номер первого документа для первой записи в день = 1.
Номер первого документа в последующих записях = сумме количества документов в предыдущих записях +1.
Как-то так.

Последний раз редактировалось anton__k; 02.09.2012 в 16:23.
anton__k вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос на добавление Slame Помощь студентам 4 20.11.2011 23:01
Запрос на добавление Slame Microsoft Office Access 3 15.11.2011 11:24
Запрос на добавление Insightful Microsoft Office Access 9 30.04.2010 18:17
Добавление (запрос) warshadow Microsoft Office Access 8 23.10.2009 01:15
запрос на добавление William Microsoft Office Access 3 13.07.2007 22:00