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

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

и это делать каждый раз ручками!!! Вместо компа!
...
Рейтинг: 0 / 0
11.10.2004, 12:31:53
    #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
11.10.2004, 12:33:46
    #32731948
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить столбцы... динамически нужные???
Ну раз требуется решать такой идиотизм:)

Заводим табличку ID месяца; Месяц - т.е. 1 - январь, 2 - февраль и т.п.
После выбора месяцев в полях со списком - по диапазону между двумя цифрами 1 - 6 делаем цикл с шагом 1 и формируем SQL запрс - т.е. к цифрам прибавляем C (как строки). При этом делаем проверку, что первый месяц должэен быть всегда меньше последнего.
...
Рейтинг: 0 / 0
11.10.2004, 12:48:14
    #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
11.10.2004, 13:16:42
    #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
11.10.2004, 13:28:33
    #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
11.10.2004, 13:30:28
    #32732106
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить столбцы... динамически нужные???
2 Alexa12
А прочитать то, что люди выше предложили?:) Мне просто код примитивный лень было писать:)
...
Рейтинг: 0 / 0
11.10.2004, 13:37:49
    #32732133
Alexa12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить столбцы... динамически нужные???
Я просто подумал, что вы предлагали запускать параметрический запрос в цикле, который стряпать надо в самом проекте как независимый. Виноват, значит не уловил мысль :)
...
Рейтинг: 0 / 0
11.10.2004, 14:18:51
    #32732230
YBW
YBW
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить столбцы... динамически нужные???
Hummer2 Alexa12
А прочитать то, что люди выше предложили?:) Мне просто код примитивный лень было писать:)
...
Рейтинг: 0 / 0
11.10.2004, 14:57:25
    #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
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сложить столбцы... динамически нужные??? / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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