Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Есть ли альтернатива Dsum???? / 13 сообщений из 13, страница 1 из 1
21.12.2015, 11:42
    #39132911
baitokberik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли альтернатива Dsum????
Мир Вам!
Есть проблемка! Применяю Dsum к моей здоровенной базе а она думает по пол года! Какая есть более быстрая альтернатива Dsum?
Для примера прикладываю файл.
...
Рейтинг: 0 / 0
21.12.2015, 12:48
    #39133002
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли альтернатива Dsum????
baitokberikКакая есть более быстрая альтернатива Dsum?
Нормальный JOIN.
...
Рейтинг: 0 / 0
21.12.2015, 13:07
    #39133035
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли альтернатива Dsum????
baitokberik,
Код: vbnet
1.
2.
3.
SELECT Sum(tbl_1.СУММ) AS [Sum-СУММ], tbl.СУММ, tbl.ID2, tbl.ID
FROM tbl INNER JOIN tbl AS tbl_1 ON tbl.ID2 = tbl_1.ID2
GROUP BY tbl.СУММ, tbl.ID2, tbl.ID;

tbl_1-копия tbl (добавьте в бланк запроса tbl повторно. Должно работать пошустрей)
...
Рейтинг: 0 / 0
21.12.2015, 13:27
    #39133069
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли альтернатива Dsum????
вдогонку:самый простой вариант-создать ОТЧЕТ используя свойство "сумма с накоплением"
...
Рейтинг: 0 / 0
21.12.2015, 13:52
    #39133097
baitokberik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли альтернатива Dsum????
sdku, попробовал Ваш вариант, но дало только общие суммы! Прилагаю файл! запрос2!
...
Рейтинг: 0 / 0
21.12.2015, 13:53
    #39133098
baitokberik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли альтернатива Dsum????
Akina, не понял, что Вы имели ввиду???
...
Рейтинг: 0 / 0
21.12.2015, 14:10
    #39133120
Есть ли альтернатива Dsum????
baitokberik,

Вариант 1
Код: sql
1.
2.
3.
SELECT t1.ID, t1.ID2, t1.СУММ, 
       (SELECT Sum(t2.СУММ) FROM tbl AS t2 WHERE (t2.ID<=t1.ID) AND (t1.ID2=t2.ID2)) AS СУММ2
FROM tbl AS t1;


Вариант 2
Код: sql
1.
2.
3.
SELECT t1.ID, t1.ID2, t1.СУММ, Sum(t2.СУММ) AS СУММ2
FROM tbl AS t1 INNER JOIN tbl AS t2 ON (t2.ID<=t1.ID) AND (t1.ID2=t2.ID2)
GROUP BY t1.ID, t1.ID2, t1.СУММ


Вариант 3
Добавить в таблицу tbl поле СУММ2 и воспользоваться процедурой, заполняющей его
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub AddSum()
  Dim id2&, sq$, sm#
  sq = "SELECT * FROM tbl ORDER BY ID2, ID"
  With CurrentDb.OpenRecordset(sq)
    id2 = 0
    Do Until .EOF
      If id2 <> !id2 Then sm = 0: id2 = !id2
      sm = sm + !СУММ
      .Edit: !СУММ2 = sm: .Update
      .MoveNext
    Loop
  End With
End Sub
...
Рейтинг: 0 / 0
21.12.2015, 14:37
    #39133160
baitokberik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли альтернатива Dsum????
Спасибо большое Буду пробовать!
...
Рейтинг: 0 / 0
21.12.2015, 18:59
    #39133691
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли альтернатива Dsum????
sdkuвдогонку:самый простой вариант-создать ОТЧЕТ используя свойство "сумма с накоплением"
см.Отчет1
...
Рейтинг: 0 / 0
24.12.2015, 09:10
    #39136733
baitokberik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли альтернатива Dsum????
SELECT t1.ID, t1.ID2, t1.СУММ,
(SELECT Sum(t2.СУММ) FROM tbl AS t2 WHERE (t2.ID<=t1.ID) AND (t1.ID2=t2.ID2)) AS СУММ2
FROM tbl AS t1;


Оказался Самым быстро действенным вариантом! Но почему то при интеграции под мою БД не даёт! Что Я сделал не так????

SELECT t1.Код, t1.Основной, t1.Поставщик, t1.Оборот, t1.НДС, t1.ДоляОборот, (SELECT Sum(t2.ДоляОборот) FROM 8РК-3 AS t2 WHERE (t2.Код<=t1.Код) AND (t1.Основной=t2.Основной)) AS СУММ2, t1.ДоляНДС, (SELECT Sum(t2.ДоляНДС) FROM 8РК-3 AS t2 WHERE (t2.Код<=t1.Код) AND (t1.Основной=t2.Основной)) AS СУММ3
FROM 8РК-3 AS t1
...
Рейтинг: 0 / 0
24.12.2015, 10:39
    #39136815
Есть ли альтернатива Dsum????
baitokberik SELECT t1.ID, t1.ID2, t1.СУММ,
(SELECT Sum(t2.СУММ) FROM tbl AS t2 WHERE (t2.ID<=t1.ID) AND (t1.ID2=t2.ID2)) AS СУММ2
FROM tbl AS t1;


Оказался Самым быстро действенным вариантом! Но почему то при интеграции под мою БД не даёт! Что Я сделал не так????

SELECT t1.Код, t1.Основной, t1.Поставщик, t1.Оборот, t1.НДС, t1.ДоляОборот, (SELECT Sum(t2.ДоляОборот) FROM 8РК-3 AS t2 WHERE (t2.Код<=t1.Код) AND (t1.Основной=t2.Основной)) AS СУММ2, t1.ДоляНДС, (SELECT Sum(t2.ДоляНДС) FROM 8РК-3 AS t2 WHERE (t2.Код<=t1.Код) AND (t1.Основной=t2.Основной)) AS СУММ3
FROM 8РК-3 AS t1
а так
Код: vbnet
1.
...FROM [8РК-3]...
...
Рейтинг: 0 / 0
24.12.2015, 11:31
    #39136879
baitokberik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли альтернатива Dsum????
То что надо! Спасибо!
...
Рейтинг: 0 / 0
25.12.2015, 08:43
    #39137778
baitokberik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли альтернатива Dsum????
Получилось то получилось! Тока вот не пойму! Почему то Запрос вышел в табличной форме но получается что он тока посчитал тока 1 страницу типа...( не знаю как объяснить) но когда нажимаю переход на последную строку зависает! И на создание таблицы зависает и сохранить в Excel-е не дает! И че теперь с ней делать????
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Есть ли альтернатива Dsum???? / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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