powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / DSUM
14 сообщений из 14, страница 1 из 1
DSUM
    #39813940
vremennyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДВС!
Согласно справки:
DSum(выражение, подмножество [, условия])...
, где подмножество - обязательный аргумент. Строковое выражение, определяющее набор записей, которые образуют подмножество. Это может быть имя таблицы или имя запроса, для которого не требуются параметры.

Вопрос: возможно ли вместо имени таблицы или имени запроса написать сам запрос. типа "Select *" и т.д.?
...
Рейтинг: 0 / 0
DSUM
    #39813946
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vremennyy,

Можно.
Но отчего Вы сами не попробовали?

Что такое "ДВС"? Ругательство, может?
...
Рейтинг: 0 / 0
DSUM
    #39813959
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__MichelleЧто такое "ДВС"?ИМХО,
ДВС - Доброго Времени Суток.
...
Рейтинг: 0 / 0
DSUM
    #39813962
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vremennyyВопрос: возможно ли вместо имени таблицы или имени запроса написать сам запрос. типа "Select *" и т.д.?
__MichelleМожно.?
...
Рейтинг: 0 / 0
DSUM
    #39813968
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург,

Сама удивляюсь.
Но, оказывается, получается.

Недавно, недели две назад, столкнулась с этим.
Не поверила.
Но проверила.
И такой сюрприз.
...
Рейтинг: 0 / 0
DSUM
    #39813971
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург,

Ой, нет.
Я перепутала.

Это в условии можно подзапрос использовать.
Типа такого:
Код: sql
1.
DLookup("T", "Tab2", "N=(SELECT TOP 1 5 FROM Tab1)")



Простите. Поторопилась.)))
...
Рейтинг: 0 / 0
DSUM
    #39813993
vremennyyвозможно ли вместо имени таблицы или имени запроса написать сам запрос. типа "Select *" и т.д.? Нельзя.
Если вы используете функцию в коде, то можно, например, так:
x = CurrentDB.OpenRecordset("SELECT Sum([Сумма]) FROM...").Field(0)
Еще можно в условиях одной функции по подмножеству (например DSum к таблице1) использовать другую функцию по подмножеству (DLookup, DMin, DMax к таблице2)
А еще можно, как написала Michelle. Т.е. в аргументе "условия" можно указывать любую конструкцию, допустимую для WHERE в запросе, возвращающем данные из одной таблицы или сохраненного запроса.

Если покажете текст запроса и объясните, где собираетесь использовать функцию - продолжим.
...
Рейтинг: 0 / 0
DSUM
    #39814036
vremennyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кривцов Анатолийvremennyyвозможно ли вместо имени таблицы или имени запроса написать сам запрос. типа "Select *" и т.д.? Нельзя.
Если вы используете функцию в коде, то можно, например, так:
x = CurrentDB.OpenRecordset("SELECT Sum([Сумма]) FROM...").Field(0)
Еще можно в условиях одной функции по подмножеству (например DSum к таблице1) использовать другую функцию по подмножеству (DLookup, DMin, DMax к таблице2)
А еще можно, как написала Michelle. Т.е. в аргументе "условия" можно указывать любую конструкцию, допустимую для WHERE в запросе, возвращающем данные из одной таблицы или сохраненного запроса.

Если покажете текст запроса и объясните, где собираетесь использовать функцию - продолжим.

Функция в форме. Если обратиться к существующему запросу или таблице, то проблем нет. С условиями тоже проблем нет. "Не хотелось бы" сохранять запрос.

Сам запрос типа
Код: sql
1.
2.
SELECT tb_1.ID, tb_3.O, tb_1.K
FROM tb_3 INNER JOIN (tb_2 INNER JOIN tb_1 ON tb_2.ID = 1.KP) ON tb_3.ID = tb_2.KV;



В условиях tb_1.ID, tb_3.O, сумма tb_1.K.

Скорее всего тут ответ Кривцов АнатолийНельзя. Но вдруг есть варианты...
...
Рейтинг: 0 / 0
DSUM
    #39814061
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vremennyyВопрос: возможно ли вместо имени таблицы или имени запроса написать сам запрос. типа "Select *" и т.д.?
Или я чего-то не понимаю....
Зачем сохраненный запрос?
HELP: "Условие- необязательное строковое выражение, ограничивающее диапазон данных, для которых производится суммирование значений. Например, аргумент условие часто является эквивалентом предложения WHERE инструкции SQL"
...
Рейтинг: 0 / 0
DSUM
    #39814066
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вдогонку:ведь запрос это та же таблица с неким отбором данных
...
Рейтинг: 0 / 0
DSUM
    #39814096
vremennyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuvremennyyВопрос: возможно ли вместо имени таблицы или имени запроса написать сам запрос. типа "Select *" и т.д.?
Или я чего-то не понимаю....
Зачем сохраненный запрос?
HELP: "Условие- необязательное строковое выражение, ограничивающее диапазон данных, для которых производится суммирование значений. Например, аргумент условие часто является эквивалентом предложения WHERE инструкции SQL"

Режите без ножа: сохраненный запрос нужен для того, чтобы обратиться к нему в DSum - так поясняет справка. Только вопрос как раз в том, возможно ли без сохранения.

С условием проблемы нет.
...
Рейтинг: 0 / 0
DSUM
    #39814097
vremennyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuвдогонку:ведь запрос это та же таблица с неким отбором данных

и?
...
Рейтинг: 0 / 0
DSUM
    #39814135
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vremennyyРежите без ножа: сохраненный запрос нужен для того, чтобы обратиться к нему в DSum - так поясняет справка. Только вопрос как раз в том, возможно ли без сохранения.
С условием проблемы нет.Запрос строится на таблице или нескольких таблицах(при этом условие будет использовать значение(я) поля(ей, которые можно возвратить,например, ф-цией Dlookup) в других таблицах). И зачем нужен "посредник" в виде запроса,когда можно обратиться напрямую к таблице. А лучше всего выложите свои наработки и поясните чего хотите.
Очень хоча взглянуть на схему БД
...
Рейтинг: 0 / 0
DSUM
    #39814479
vremennyyФункция в форме. Исчерпывающий ответ. В форме, это, как минимум, два варианта - в модуле формы и в вычисляемом поле.
Если у вас это в модуле формы, то чем не устраивает предложенный вариант
x = CurrentDB.OpenRecordset("SELECT Sum([Сумма]) FROM...").Field(0) ?
При желании это можно обернуть в универсальную функцию, получающую SQL выражение и возвращающую значение первого поля из первой записи (или Null, если записей нет). Эту функцию можно использовать и в вычисляемых полях.

Если, всё же, исследуем DSum, то попробуйте так:
Код: vbnet
1.
2.
DSum("[K]", "[tb_1]", "ID=1 AND KP In (SELECT tb_2.ID FROM
tb_3 INNER JOIN tb_2 ON tb_3.ID = tb_2.KV WHERE tb_3.O=2)").
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / DSUM
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]