powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сложить столбцы... динамически нужные???
13 сообщений из 13, страница 1 из 1
Как сложить столбцы... динамически нужные???
    #32731885
IgorMan2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблицы клиенты, в ней есть его имя, …. и 12 полей C1, ...., C12 - платежи по месяцам янв.-дек.
Надо, например, узнать сумму платежей за июн - авг. по клиентам, т.е. сложить C6+C7+C8
Как это сдалать? на входе есть две даты на выходе надо сумму ? Может кто встречался и знает как это моно?
...
Рейтинг: 0 / 0
Как сложить столбцы... динамически нужные???
    #32731907
Birjan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Плохая таблица!
Нельзя в таблице клиентов держать платежи.
...
Рейтинг: 0 / 0
Как сложить столбцы... динамически нужные???
    #32731909
IgorMan2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пацаны, базару нет плохая таблица...
Но интереса ради как это можно реализовать? Давайте допустим что такие исходные данные...
...
Рейтинг: 0 / 0
Как сложить столбцы... динамически нужные???
    #32731926
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дряная таблица!

SELECT имя, C6+C7+C8 AS платежи за июн - авг
FROM Tbl

и это делать каждый раз ручками!!! Вместо компа!
...
Рейтинг: 0 / 0
Как сложить столбцы... динамически нужные???
    #32731942
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допустим это таблица платежей.... Я так понимаю, что есть таблица 2002,
таблица 2003 и таблица 2004? Если так, то подход в принципе неправильный.
Лучше сформулирую общую задачу, а обчество подскажет, какие сделать таблицы
и как их связать.

--
Regards
Alexander Artamonov


"IgorMan2" <nospam@sql.ru>; сообщил/сообщила в новостях следующее:
news:1022863@sql.ru...
Есть таблицы клиенты, в ней есть его имя, :. и 12 полей C1, ...., C12 -
платежи по месяцам янв.-дек.
Надо, например, узнать сумму платежей за июн - авг. по клиентам, т.е.
сложить C6+C7+C8
Как это сдалать? на входе есть две даты на выходе надо сумму ? Может кто
встречался и знает как это моно?
Тема Ответить

Posted via ActualForum NNTP Server 1.0
...
Рейтинг: 0 / 0
Как сложить столбцы... динамически нужные???
    #32731948
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну раз требуется решать такой идиотизм:)

Заводим табличку ID месяца; Месяц - т.е. 1 - январь, 2 - февраль и т.п.
После выбора месяцев в полях со списком - по диапазону между двумя цифрами 1 - 6 делаем цикл с шагом 1 и формируем SQL запрс - т.е. к цифрам прибавляем C (как строки). При этом делаем проверку, что первый месяц должэен быть всегда меньше последнего.
...
Рейтинг: 0 / 0
Как сложить столбцы... динамически нужные???
    #32731984
YBW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
YBW
Гость
SELECT DISTINCTROW tblPayments.CustomerName, Sum([Jan]+[Feb]+[Mar]) AS Q1, Sum([Apr]+[Mar]+[Jun]) AS Q2, Sum([Jul]+[Aug]+[Sep]) AS Q3, Sum([Oct]+[Nov]+[Dec]) AS Q4
FROM tblPayments
GROUP BY tblPayments.CustomerName;

а вообще - присоединяюсь к предыдущим постам - держать данные в такой структуре - верный способ нажить себе неприятности
...
Рейтинг: 0 / 0
Как сложить столбцы... динамически нужные???
    #32732056
IgorMan2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спортивный интерес еще никто не отменял ...
Можно попробовать, вот что

в отчете (Label)

=IIf([N]>=1;[Запрос1.С1];0)
+IIf([N]>=2;[Запрос1.С2];0)
+IIf([N]>=3;[Запрос1.С3];0)
........
+IIf([N]>=12;[Запрос1.С12];0)

, где N - номер месяца
...
Рейтинг: 0 / 0
Как сложить столбцы... динамически нужные???
    #32732096
Alexa12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это можно сделать проще.
В форме вешаешь два выпадающих списка (нальный месяц и конечный месяц). Хочешь напрямую в источнике пропиши эти месяца, хочешь таблицу создай и подвесь к ним (только в таблице или в списках значений должно быть 2 столбца номер месяца и сам месяц)
Прицепить на кнопку или еще на какое-нить действие такую фичу

DIM a,b
b=""
FOR a=[Поле1] to ABS([Поле1]-[Поле2])
b=b + "C" & CSTR(a) & "+"
NEXT
'здесь надо отрезать послений плюс от b и прибавить " AS Выражение1 "
DoCmd.RunSQL "SELECT имя_поля_поставщика, " & b & "FROM имя_таблицы"

Следи за пробелами. А так вот тебе решение твоей проблемы. Не забудь условие на второе поле поставить, что оно не дожно быть меньше первого и обновлялось своевременно после выбора начального месяца
...
Рейтинг: 0 / 0
Как сложить столбцы... динамически нужные???
    #32732106
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Alexa12
А прочитать то, что люди выше предложили?:) Мне просто код примитивный лень было писать:)
...
Рейтинг: 0 / 0
Как сложить столбцы... динамически нужные???
    #32732133
Alexa12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я просто подумал, что вы предлагали запускать параметрический запрос в цикле, который стряпать надо в самом проекте как независимый. Виноват, значит не уловил мысль :)
...
Рейтинг: 0 / 0
Как сложить столбцы... динамически нужные???
    #32732230
YBW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
YBW
Гость
Hummer2 Alexa12
А прочитать то, что люди выше предложили?:) Мне просто код примитивный лень было писать:)
...
Рейтинг: 0 / 0
Как сложить столбцы... динамически нужные???
    #32732359
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Есть таблицы клиенты, в ней есть его имя, …. и 12 полей C1, ...., C12 - платежи по месяцам янв.-дек.
Надо, например, узнать сумму платежей за июн - авг. по клиентам, т.е. сложить C6+C7+C8
Как это сдалать? на входе есть две даты на выходе надо сумму ? Может кто встречался и знает как это моно?

Моно... и извратиться:
Д1- первая дата
Д2- вторая.

Код: plaintext
1.
2.
3.
4.
5.
6.
select I1*C1+ ....+I12*C12 FROM таблица LEFT OUTER JOIN 
(select 
   IIF(DatePart(month, Д1)<= 1  and DatePart(month, Д2)>= 1 ,  1  , 0 )  1  as I1,
...
   IIF(DatePart(month, Д1)<= 12  and DatePart(month, Д2)>= 12 ,  1  , 0 )  1  as I12
) AS I on  1 = 1 

ежели сразу вместо дат указать месяцы => будет быстрее.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сложить столбцы... динамически нужные???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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