Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Access структура БД - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Модератор форума: _Boroda_, китин  
Мир MS Excel » Вопросы и решения » Excel и другие приложения » Access » Access структура БД (Прошу посмотреть и прокомментировать структуру базы)
Access структура БД
qpp Дата: Четверг, 27.09.2012, 15:01 | Сообщение № 21
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 117
Репутация: 11 ±
Замечаний: 0% ±

база внутри. за прошедшее время она обросла таблицами .

Опишу, это все, постараюсь сделать лаконично

База консолидирует информацию по продажам и остаткам.
Содержит.

А. Первичные продажи (PERVICHKA) структура следующая

  • distributor
  • product
  • date_pervichka
  • quantity
  • sales_whitout_VAT


Б. Вторичные продажи (SALES) продажи дистрибьюторов


  • price
  • distributor
  • product
  • brunch
  • customer
  • quantity
  • region
  • date_sales


В. Планы продаж (PLAN) .План выставляется на определенные регионы и на определенные продукты (в таблицах PRODUCT и REGION есть поле которое указывает на это (это поле plan))

  • region
  • product
  • date_plan
  • plan rub
  • plan quan


Г. Остатки на филиалах поставщиков (ACTUAL_BALANCE).

  • brunch
  • distributor
  • product
  • actual_balance
  • date_actual_balance


Что нужно получить в первом приближении .

БД в которой будут храниться/обновляться данные по :
(добавление на ежемесячной основе новых данных, предполагается загрузка из EXCEl)
-продажам
-планам
-прайсам
-остаткам дистрибьюторов

Натсроены отчеты по :

-продажам (отчет, который будет выдавать продажи в рублях, на основании прайса)
-отгрузкам (отгрузки по месяцам и по дистрибьюторам )
-выполнению плана ( план факт таблица )
-история цены прайса
-остатки дистрибьюторов (остатки помесячно у дистрибьюторов)

И самый главный для меня вопрос как сделать так, что бы это обновлялось и пополнялось новыми данными.
К сообщению приложен файл: testQPP_3.zip (29.5 Kb)


bigqpp
скайп


Сообщение отредактировал qpp - Четверг, 27.09.2012, 15:55
 
Ответить
Сообщениебаза внутри. за прошедшее время она обросла таблицами .

Опишу, это все, постараюсь сделать лаконично

База консолидирует информацию по продажам и остаткам.
Содержит.

А. Первичные продажи (PERVICHKA) структура следующая

  • distributor
  • product
  • date_pervichka
  • quantity
  • sales_whitout_VAT


Б. Вторичные продажи (SALES) продажи дистрибьюторов


  • price
  • distributor
  • product
  • brunch
  • customer
  • quantity
  • region
  • date_sales


В. Планы продаж (PLAN) .План выставляется на определенные регионы и на определенные продукты (в таблицах PRODUCT и REGION есть поле которое указывает на это (это поле plan))

  • region
  • product
  • date_plan
  • plan rub
  • plan quan


Г. Остатки на филиалах поставщиков (ACTUAL_BALANCE).

  • brunch
  • distributor
  • product
  • actual_balance
  • date_actual_balance


Что нужно получить в первом приближении .

БД в которой будут храниться/обновляться данные по :
(добавление на ежемесячной основе новых данных, предполагается загрузка из EXCEl)
-продажам
-планам
-прайсам
-остаткам дистрибьюторов

Натсроены отчеты по :

-продажам (отчет, который будет выдавать продажи в рублях, на основании прайса)
-отгрузкам (отгрузки по месяцам и по дистрибьюторам )
-выполнению плана ( план факт таблица )
-история цены прайса
-остатки дистрибьюторов (остатки помесячно у дистрибьюторов)

И самый главный для меня вопрос как сделать так, что бы это обновлялось и пополнялось новыми данными.

Автор - qpp
Дата добавления - 27.09.2012 в 15:01
Gustav Дата: Четверг, 27.09.2012, 15:43 | Сообщение № 22
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2748
Репутация: 1137 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Quote (qpp)
sales_whitout_VAT

Ну, блин, опять "в ХИТ аут"... да "ВИЗ аут"! WITHOUT! буква H на 4-й позиции, а не на 2-й smile


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
Quote (qpp)
sales_whitout_VAT

Ну, блин, опять "в ХИТ аут"... да "ВИЗ аут"! WITHOUT! буква H на 4-й позиции, а не на 2-й smile

Автор - Gustav
Дата добавления - 27.09.2012 в 15:43
qpp Дата: Четверг, 27.09.2012, 15:56 | Сообщение № 23
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 117
Репутация: 11 ±
Замечаний: 0% ±

я прошу прощения за опечатку, когда быстро печатаешь такое постоянно. Гугл и офисные программы проверку делают, а аксес нет, вот такие ляпы и выходят.

п.с. выложил исправленный вариант.


bigqpp
скайп


Сообщение отредактировал qpp - Четверг, 27.09.2012, 15:57
 
Ответить
Сообщениея прошу прощения за опечатку, когда быстро печатаешь такое постоянно. Гугл и офисные программы проверку делают, а аксес нет, вот такие ляпы и выходят.

п.с. выложил исправленный вариант.

Автор - qpp
Дата добавления - 27.09.2012 в 15:56
Gustav Дата: Четверг, 27.09.2012, 17:18 | Сообщение № 24
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2748
Репутация: 1137 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Ну-с, начнём потихоньку критиканствовать... wink

Вот, например, таблица PLAN. Зачем ей уникальный ключ в виде абстрактного поля "номер плана"(id)? Ну есть номер и дальше что? Он ни с чем не связан и несмотря на свою "ключевость" легко пропускает дублирование любой записи, ну конечно сам при этом не повторяясь (только что толку от этого?).

Взгляд на эту таблицу наводит на мысль, что вот комбинация полей "region - product - date_plan", наверное, по смыслу должна быть уникальна. Вот эти три поля и следует сделать первичным составным ключом этой таблицы (значок "золотого ключика" в схеме будет напротив каждого из них).


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Четверг, 27.09.2012, 17:21
 
Ответить
СообщениеНу-с, начнём потихоньку критиканствовать... wink

Вот, например, таблица PLAN. Зачем ей уникальный ключ в виде абстрактного поля "номер плана"(id)? Ну есть номер и дальше что? Он ни с чем не связан и несмотря на свою "ключевость" легко пропускает дублирование любой записи, ну конечно сам при этом не повторяясь (только что толку от этого?).

Взгляд на эту таблицу наводит на мысль, что вот комбинация полей "region - product - date_plan", наверное, по смыслу должна быть уникальна. Вот эти три поля и следует сделать первичным составным ключом этой таблицы (значок "золотого ключика" в схеме будет напротив каждого из них).

Автор - Gustav
Дата добавления - 27.09.2012 в 17:18
Pelena Дата: Четверг, 27.09.2012, 18:24 | Сообщение № 25
Группа: Админы
Ранг: Местный житель
Сообщений: 19189
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
qpp, по Вашему первому запросу (пост №17) попробуйте такой вариант
[vba]
Code
SELECT [Запрос ПЕРВИЧКА по дистрибам].distributor, Sum([Запрос Sales дистрибьютор регион].[Sum-quantity]) AS [sales-quantity], Sum([Запрос ПЕРВИЧКА по дистрибам].[Sum-quantity]) AS [PERVICHKA-quantity], [Запрос ПЕРВИЧКА по дистрибам].date_pervichka
FROM [Запрос Sales дистрибьютор регион] RIGHT JOIN [Запрос ПЕРВИЧКА по дистрибам] ON ([Запрос Sales дистрибьютор регион].distributor = [Запрос ПЕРВИЧКА по дистрибам].distributor) AND ([Запрос Sales дистрибьютор регион].data_sales = [Запрос ПЕРВИЧКА по дистрибам].date_pervichka)
GROUP BY [Запрос ПЕРВИЧКА по дистрибам].distributor, [Запрос ПЕРВИЧКА по дистрибам].date_pervichka
ORDER BY [Запрос ПЕРВИЧКА по дистрибам].date_pervichka;
[/vba]
Это если поле даты будет всегда первым числом месяца.

Quote (qpp)
предполагается загрузка из EXCEl

А в Excel данные откуда будут попадать?
К сообщению приложен файл: 6706252.zip (30.5 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщениеqpp, по Вашему первому запросу (пост №17) попробуйте такой вариант
[vba]
Code
SELECT [Запрос ПЕРВИЧКА по дистрибам].distributor, Sum([Запрос Sales дистрибьютор регион].[Sum-quantity]) AS [sales-quantity], Sum([Запрос ПЕРВИЧКА по дистрибам].[Sum-quantity]) AS [PERVICHKA-quantity], [Запрос ПЕРВИЧКА по дистрибам].date_pervichka
FROM [Запрос Sales дистрибьютор регион] RIGHT JOIN [Запрос ПЕРВИЧКА по дистрибам] ON ([Запрос Sales дистрибьютор регион].distributor = [Запрос ПЕРВИЧКА по дистрибам].distributor) AND ([Запрос Sales дистрибьютор регион].data_sales = [Запрос ПЕРВИЧКА по дистрибам].date_pervichka)
GROUP BY [Запрос ПЕРВИЧКА по дистрибам].distributor, [Запрос ПЕРВИЧКА по дистрибам].date_pervichka
ORDER BY [Запрос ПЕРВИЧКА по дистрибам].date_pervichka;
[/vba]
Это если поле даты будет всегда первым числом месяца.

Quote (qpp)
предполагается загрузка из EXCEl

А в Excel данные откуда будут попадать?

Автор - Pelena
Дата добавления - 27.09.2012 в 18:24
qpp Дата: Четверг, 27.09.2012, 18:34 | Сообщение № 26
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 117
Репутация: 11 ±
Замечаний: 0% ±

По логике абсолютно правильно, регион-продукт-дата это уникальное значение для таблицы ПЛАН.

для PERVICHK'и (id_distr / id_prod / date_pervichka) т.к это тоже уникальное значение.
Тогда, по той же логике, я должен сделать составной ключ для SALES ( id_distr / id_prod / ID_brunch / data_sales) получается отгрузка на филиал по дате.

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

to Pelena в эксель данные попадают из отчетов дистрибьютора, свожу ручками + огромную помощь оказывает уважаемый коллега с форума, потихоньку автоматизируя процесс сбора данных, приведения к одному формату.

я понял вашу логику, спасибо , можно ли использовать в ACCeSS команду FULL OUTER JOIN у меня почему то она не срабатывает


bigqpp
скайп


Сообщение отредактировал qpp - Четверг, 27.09.2012, 18:54
 
Ответить
СообщениеПо логике абсолютно правильно, регион-продукт-дата это уникальное значение для таблицы ПЛАН.

для PERVICHK'и (id_distr / id_prod / date_pervichka) т.к это тоже уникальное значение.
Тогда, по той же логике, я должен сделать составной ключ для SALES ( id_distr / id_prod / ID_brunch / data_sales) получается отгрузка на филиал по дате.

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

to Pelena в эксель данные попадают из отчетов дистрибьютора, свожу ручками + огромную помощь оказывает уважаемый коллега с форума, потихоньку автоматизируя процесс сбора данных, приведения к одному формату.

я понял вашу логику, спасибо , можно ли использовать в ACCeSS команду FULL OUTER JOIN у меня почему то она не срабатывает

Автор - qpp
Дата добавления - 27.09.2012 в 18:34
Pelena Дата: Четверг, 27.09.2012, 18:56 | Сообщение № 27
Группа: Админы
Ранг: Местный житель
Сообщений: 19189
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
Quote (qpp)
о полезности составного ключа

Составной ключ предполагает уникальность сочетания полей. Защита от дублирования.

Quote (qpp)
(id_distr / id_prod / date_pervichka) т.к это тоже уникальное значение

Т.е. первичная отгрузка происходит для каждого дистрибьютора+продукт один раз в месяц?

Quote (qpp)
можно ли использовать в ACCeSS команду FULL OUTER JOIN

Access не поддерживает такую команду, но можно попробовать использовать такую конструкцию
SELECT ...
FROM ... LEFT JOIN ... ON ...
UNION
SELECT ...
FROM ... RIGHT JOIN ... ON ...

(сама не использовала)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
Quote (qpp)
о полезности составного ключа

Составной ключ предполагает уникальность сочетания полей. Защита от дублирования.

Quote (qpp)
(id_distr / id_prod / date_pervichka) т.к это тоже уникальное значение

Т.е. первичная отгрузка происходит для каждого дистрибьютора+продукт один раз в месяц?

Quote (qpp)
можно ли использовать в ACCeSS команду FULL OUTER JOIN

Access не поддерживает такую команду, но можно попробовать использовать такую конструкцию
SELECT ...
FROM ... LEFT JOIN ... ON ...
UNION
SELECT ...
FROM ... RIGHT JOIN ... ON ...

(сама не использовала)

Автор - Pelena
Дата добавления - 27.09.2012 в 18:56
Gustav Дата: Четверг, 27.09.2012, 19:08 | Сообщение № 28
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2748
Репутация: 1137 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Quote (Pelena)
Т.е. первичная отгрузка происходит для каждого дистрибьютора+продукт один раз в месяц?

Насколько меня терзают смутные сомнения, тут нет хозяйственных операций. Это база сводных данных. Похоже, мы тут сообща проектируем какой-то OLAP-сервер... smile


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
Quote (Pelena)
Т.е. первичная отгрузка происходит для каждого дистрибьютора+продукт один раз в месяц?

Насколько меня терзают смутные сомнения, тут нет хозяйственных операций. Это база сводных данных. Похоже, мы тут сообща проектируем какой-то OLAP-сервер... smile

Автор - Gustav
Дата добавления - 27.09.2012 в 19:08
qpp Дата: Четверг, 27.09.2012, 19:31 | Сообщение № 29
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 117
Репутация: 11 ±
Замечаний: 0% ±

Спасибо, т,е, по первичке я дату убираю, тоже и по продажам ? Потому как и в следующем месяце возможна такая комбинация дистр/фил/товар
Уважаемый , Gustav, вы считаете что такая детализация излишня?


bigqpp
скайп
 
Ответить
СообщениеСпасибо, т,е, по первичке я дату убираю, тоже и по продажам ? Потому как и в следующем месяце возможна такая комбинация дистр/фил/товар
Уважаемый , Gustav, вы считаете что такая детализация излишня?

Автор - qpp
Дата добавления - 27.09.2012 в 19:31
Pelena Дата: Четверг, 27.09.2012, 19:37 | Сообщение № 30
Группа: Админы
Ранг: Местный житель
Сообщений: 19189
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
Quote (qpp)
по первичке я дату убираю

Нет, я уточняю, в этих таблицах за каждый месяц+дистрибьютор+продукт одна запись? Если да, то можно делать такой составной ключ


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
Quote (qpp)
по первичке я дату убираю

Нет, я уточняю, в этих таблицах за каждый месяц+дистрибьютор+продукт одна запись? Если да, то можно делать такой составной ключ

Автор - Pelena
Дата добавления - 27.09.2012 в 19:37
qpp Дата: Четверг, 27.09.2012, 19:54 | Сообщение № 31
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 117
Репутация: 11 ±
Замечаний: 0% ±

Да, запись одна. Это условие я сделал для того, что бы избежать лишних записей в таблице. внутри одного месяца продукт/дистрибьютор/дата уникальная запись.

Я понимаю что отчет по первичным и вторичным продажам может быть связан через этот составной ключ дистриб/продукт/ дата, но воторой отчет, который я планирую добавить, так же содержир еще и деление по филиалам, т.е. для него ключь будт следующий (id_distr / id_prod / ID_brunch / data_sales). Полностью уникальная запись продажи товара с филиала дистрибьютора за один месяц.
Возможно, меня уже заносит не в ту степь .. Но все же.

Который час, а еще с работы не ушел, интересно это.


bigqpp
скайп
 
Ответить
СообщениеДа, запись одна. Это условие я сделал для того, что бы избежать лишних записей в таблице. внутри одного месяца продукт/дистрибьютор/дата уникальная запись.

Я понимаю что отчет по первичным и вторичным продажам может быть связан через этот составной ключ дистриб/продукт/ дата, но воторой отчет, который я планирую добавить, так же содержир еще и деление по филиалам, т.е. для него ключь будт следующий (id_distr / id_prod / ID_brunch / data_sales). Полностью уникальная запись продажи товара с филиала дистрибьютора за один месяц.
Возможно, меня уже заносит не в ту степь .. Но все же.

Который час, а еще с работы не ушел, интересно это.

Автор - qpp
Дата добавления - 27.09.2012 в 19:54
Gustav Дата: Пятница, 28.09.2012, 10:21 | Сообщение № 32
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2748
Репутация: 1137 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
qpp, опишу в виде набора тезисов как мне видится ваша база и ее функционирование, а Вы прокомментируйте насколько это соответствует действительности. Итак:

1. Есть некая дистрибьюторская сеть - рисуем круг в центре листа бумаги. Это наша замкнутая система, а круг - ее границы

2. Слева от круга рисуем входящую стрелку - это наш входящий в систему логистический поток (деньги+количество). В схеме данных это таблица PERVICHKA (по смыслу - ПРИХОД системы).

3. Справа от круга рисуем вЫходящую стрелку - это, соответственно, выходящий поток. В схеме данных это таблица SALES (по смыслу - РАСХОД системы).

4. Не забываем основную простую формулу любого учета: ОСТАТОК = ПРИХОД - РАСХОД. В системе понятию ОСТАТОК соответствует таблица ACTUAL_BALANCE. С позиций теоретического проектирования БД наличие такой таблицы уже представляется избыточным, так как по формуле видно, что остаток может быть рассчитан динамически по данным таблиц прихода и расхода. Поэтому теоретически обоснованными в таблице ACTUAL_BALANCE могут быть только единожды помещенные туда данные по остаткам на момент начала учета. Все остальные остатки на любую более позднюю дату могут быть рассчитаны. С применением этой таблицы основная формула может быть чуть-чуть (непринципиально) изменена: ОСТАТОК в любой момент = начальный ОСТАТОК + ПРИХОД до этого момента - РАСХОД до этого момента.

5. ПРИХОД системы (PERVICHKA) представлен в разрезе по: distributor + product.

6. ОСТАТОК системы (ACTUAL_BALANCE) представлен в разрезе по: distributor + brunch + product. Т.е., образно говоря, это наш аккумулятор, в который "втекает" приход и из которого "вытекает" расход.

7. РАСХОД системы (SALES) представлен в разрезе по: distributor + brunch + product (всё те же) + (дополнительно еще) region + customer.

8. Внимание! Первый принципиальный вопрос: а когда в ОСТАТКЕ поток успевает разделиться еще и на brunch? Ведь brunch в ПРИХОДЕ отсутствует...

9. Таблица PLAN с точки зрения логистического потока вообще "не при делах". Всё, что можно с ней делать, так это сравнивать за период её данные и данные таблицы SALES, сгруппированные по полям product + region (чтобы соответствовать "разрезу" таблицы PLAN). По результатам анализа можно выписывать премии/нагоняи - наверное, региональным менеджерам (ну не продуктам же!) smile

to be continued... (в смысле - по возможности буду еще писать в это сообщение до конца дня)


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Пятница, 28.09.2012, 10:43
 
Ответить
Сообщениеqpp, опишу в виде набора тезисов как мне видится ваша база и ее функционирование, а Вы прокомментируйте насколько это соответствует действительности. Итак:

1. Есть некая дистрибьюторская сеть - рисуем круг в центре листа бумаги. Это наша замкнутая система, а круг - ее границы

2. Слева от круга рисуем входящую стрелку - это наш входящий в систему логистический поток (деньги+количество). В схеме данных это таблица PERVICHKA (по смыслу - ПРИХОД системы).

3. Справа от круга рисуем вЫходящую стрелку - это, соответственно, выходящий поток. В схеме данных это таблица SALES (по смыслу - РАСХОД системы).

4. Не забываем основную простую формулу любого учета: ОСТАТОК = ПРИХОД - РАСХОД. В системе понятию ОСТАТОК соответствует таблица ACTUAL_BALANCE. С позиций теоретического проектирования БД наличие такой таблицы уже представляется избыточным, так как по формуле видно, что остаток может быть рассчитан динамически по данным таблиц прихода и расхода. Поэтому теоретически обоснованными в таблице ACTUAL_BALANCE могут быть только единожды помещенные туда данные по остаткам на момент начала учета. Все остальные остатки на любую более позднюю дату могут быть рассчитаны. С применением этой таблицы основная формула может быть чуть-чуть (непринципиально) изменена: ОСТАТОК в любой момент = начальный ОСТАТОК + ПРИХОД до этого момента - РАСХОД до этого момента.

5. ПРИХОД системы (PERVICHKA) представлен в разрезе по: distributor + product.

6. ОСТАТОК системы (ACTUAL_BALANCE) представлен в разрезе по: distributor + brunch + product. Т.е., образно говоря, это наш аккумулятор, в который "втекает" приход и из которого "вытекает" расход.

7. РАСХОД системы (SALES) представлен в разрезе по: distributor + brunch + product (всё те же) + (дополнительно еще) region + customer.

8. Внимание! Первый принципиальный вопрос: а когда в ОСТАТКЕ поток успевает разделиться еще и на brunch? Ведь brunch в ПРИХОДЕ отсутствует...

9. Таблица PLAN с точки зрения логистического потока вообще "не при делах". Всё, что можно с ней делать, так это сравнивать за период её данные и данные таблицы SALES, сгруппированные по полям product + region (чтобы соответствовать "разрезу" таблицы PLAN). По результатам анализа можно выписывать премии/нагоняи - наверное, региональным менеджерам (ну не продуктам же!) smile

to be continued... (в смысле - по возможности буду еще писать в это сообщение до конца дня)

Автор - Gustav
Дата добавления - 28.09.2012 в 10:21
qpp Дата: Пятница, 28.09.2012, 11:18 | Сообщение № 33
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 117
Репутация: 11 ±
Замечаний: 0% ±

Gustav, 1-3 соответствует действительности, на практике я бы добавил стрелку в обе стороны на п.3 т.к. дистрибьюторы перепродают товар другим дистрибьюторам, которые так же покупаю товр у нас wacko (скажем если другие не смогли купить товар у нас (дефектура и прочее ) ( но это лирика, описание мук вычисления правдивой информации о продажах из этого нескончаемого потока)) данные которые будут загружаться в базу де-факто от этого уже почищены.

п.4 к сожалению тут не применим, по скольку ACTUAL_BALANCE это срез остатков у дистрибьютора на начало след месяца ( т.к. если мы снимаем продажи за август, таблица ACTUAL_BALANCE предоставляет данные по остаткам на 1 сентября), и как я уже описывал выше возможно что дистр закупил наш товар у кого-то еще ( что нормальная практика), по этой причине данные по остаткам нам так же предоставляет дистрибьютор, и они в 95% случаев не бьются с расчетными приход-расход.

п.5-8 мы отгружаем (первичка) на основной склад дистрибьютора (т.е. в первичке один дистрибьютор имеет один филиал (brunch)), а сам дистрибьютор уже разбрасывает товар по своим филиалам с учетом потребностей (эти данные по остаткам и продажам мы уже получаем от дистрибьютора)

п.6 на самом деле ACTUAL_BALANCE это всего лишь вспомогательные данные, для расчета созданного товарного запаса у дистрибьютора, они должны быть и мы их получам на ежемесячной основе

нашим основным аккумулятором является таблица SALES на основании которой построена вся отчетность, это конечные продажи=вторичные продажи, то что уходит уже в розницу, т.е. нам с вами.

и уже как ,я считаю, к этой таблице нужно привязывать PERVICHKA по дистрибьютору/ товару,

ACTUAL_BALANCE по дистрибьютору/ товары/ филиалу

PLAN по товар/регион/дата

надеюсь я смог ответить на все вопросы.


bigqpp
скайп


Сообщение отредактировал qpp - Пятница, 28.09.2012, 11:19
 
Ответить
СообщениеGustav, 1-3 соответствует действительности, на практике я бы добавил стрелку в обе стороны на п.3 т.к. дистрибьюторы перепродают товар другим дистрибьюторам, которые так же покупаю товр у нас wacko (скажем если другие не смогли купить товар у нас (дефектура и прочее ) ( но это лирика, описание мук вычисления правдивой информации о продажах из этого нескончаемого потока)) данные которые будут загружаться в базу де-факто от этого уже почищены.

п.4 к сожалению тут не применим, по скольку ACTUAL_BALANCE это срез остатков у дистрибьютора на начало след месяца ( т.к. если мы снимаем продажи за август, таблица ACTUAL_BALANCE предоставляет данные по остаткам на 1 сентября), и как я уже описывал выше возможно что дистр закупил наш товар у кого-то еще ( что нормальная практика), по этой причине данные по остаткам нам так же предоставляет дистрибьютор, и они в 95% случаев не бьются с расчетными приход-расход.

п.5-8 мы отгружаем (первичка) на основной склад дистрибьютора (т.е. в первичке один дистрибьютор имеет один филиал (brunch)), а сам дистрибьютор уже разбрасывает товар по своим филиалам с учетом потребностей (эти данные по остаткам и продажам мы уже получаем от дистрибьютора)

п.6 на самом деле ACTUAL_BALANCE это всего лишь вспомогательные данные, для расчета созданного товарного запаса у дистрибьютора, они должны быть и мы их получам на ежемесячной основе

нашим основным аккумулятором является таблица SALES на основании которой построена вся отчетность, это конечные продажи=вторичные продажи, то что уходит уже в розницу, т.е. нам с вами.

и уже как ,я считаю, к этой таблице нужно привязывать PERVICHKA по дистрибьютору/ товару,

ACTUAL_BALANCE по дистрибьютору/ товары/ филиалу

PLAN по товар/регион/дата

надеюсь я смог ответить на все вопросы.

Автор - qpp
Дата добавления - 28.09.2012 в 11:18
qpp Дата: Среда, 07.11.2012, 12:15 | Сообщение № 34
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 117
Репутация: 11 ±
Замечаний: 0% ±

Коллеги ,оживляя тему прошу помочь из данного условия сделать запрос на удаление

[vba]
Код
SELECT First(CUSTOMER.client_name) AS [client_name поле], First(CUSTOMER.physical_address) AS [physical_address поле], First(CUSTOMER.legal_address) AS [legal_address поле], First(CUSTOMER.city) AS [city поле], Count(CUSTOMER.client_name) AS Повторы
FROM CUSTOMER
GROUP BY CUSTOMER.client_name, CUSTOMER.physical_address, CUSTOMER.legal_address, CUSTOMER.city
HAVING (((Count(CUSTOMER.client_name))>1) AND ((Count(CUSTOMER.city))>1));
[/vba]
это запрос на поиск задваоений в названии клиентов, как оказывается, они у меня есть.


bigqpp
скайп


Сообщение отредактировал qpp - Среда, 07.11.2012, 12:34
 
Ответить
СообщениеКоллеги ,оживляя тему прошу помочь из данного условия сделать запрос на удаление

[vba]
Код
SELECT First(CUSTOMER.client_name) AS [client_name поле], First(CUSTOMER.physical_address) AS [physical_address поле], First(CUSTOMER.legal_address) AS [legal_address поле], First(CUSTOMER.city) AS [city поле], Count(CUSTOMER.client_name) AS Повторы
FROM CUSTOMER
GROUP BY CUSTOMER.client_name, CUSTOMER.physical_address, CUSTOMER.legal_address, CUSTOMER.city
HAVING (((Count(CUSTOMER.client_name))>1) AND ((Count(CUSTOMER.city))>1));
[/vba]
это запрос на поиск задваоений в названии клиентов, как оказывается, они у меня есть.

Автор - qpp
Дата добавления - 07.11.2012 в 12:15
Pelena Дата: Среда, 07.11.2012, 16:19 | Сообщение № 35
Группа: Админы
Ранг: Местный житель
Сообщений: 19189
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
Если я правильно поняла, и удалять нужно записи, где повторяются название клиента и город, то можно попробовать такой запрос
[vba]
Code
DELETE *
FROM CUSTOMER
WHERE ID_customer NOT IN (SELECT MIN(ID_customer) FROM CUSTOMER GROUP BY client_name,city)
[/vba]
Остаются записи с наименьшим ID (структуру таблицы смотрела в файле из предыдущих постов)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЕсли я правильно поняла, и удалять нужно записи, где повторяются название клиента и город, то можно попробовать такой запрос
[vba]
Code
DELETE *
FROM CUSTOMER
WHERE ID_customer NOT IN (SELECT MIN(ID_customer) FROM CUSTOMER GROUP BY client_name,city)
[/vba]
Остаются записи с наименьшим ID (структуру таблицы смотрела в файле из предыдущих постов)

Автор - Pelena
Дата добавления - 07.11.2012 в 16:19
qpp Дата: Среда, 07.11.2012, 16:42 | Сообщение № 36
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 117
Репутация: 11 ±
Замечаний: 0% ±

Спасибо, логику понял.

Запустил, сейчас обсчитывается.

очень долго считает..еще даже до половины не дошло.

Зависло чего то, поставлю на ночь пересчитываться.


bigqpp
скайп


Сообщение отредактировал qpp - Среда, 07.11.2012, 17:40
 
Ответить
СообщениеСпасибо, логику понял.

Запустил, сейчас обсчитывается.

очень долго считает..еще даже до половины не дошло.

Зависло чего то, поставлю на ночь пересчитываться.

Автор - qpp
Дата добавления - 07.11.2012 в 16:42
qpp Дата: Понедельник, 12.11.2012, 10:29 | Сообщение № 37
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 117
Репутация: 11 ±
Замечаний: 0% ±

Отлично, после пересчета ( оставил на ночь) дубли были почищены !


bigqpp
скайп
 
Ответить
СообщениеОтлично, после пересчета ( оставил на ночь) дубли были почищены !

Автор - qpp
Дата добавления - 12.11.2012 в 10:29
qpp Дата: Среда, 09.01.2013, 16:49 | Сообщение № 38
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 117
Репутация: 11 ±
Замечаний: 0% ±

коллеги, приветствую.

Хотелось бы продолжить данную тему

По ходу у меня возник вопрос, хочу услышать комментарии.

В таблице CUSTOMER, у меня присутствует список клиентов с их адресом и прочей информацией ( эти данные идут из отчетов контрагентов, и нормализировать их я , на данном этапе не смогу , в идеале конечно же хотелось отдельно список адресов, городов, привязанных к клиенту - мне это сейчас не доступно )

Вопрос заключается в следующем:

в будущем, понадобиться "схлопнуть" этот список, т.е. связать дубли между собой, как мне поступить. Т.к. сейчас я присваиваю каждому клиенту(читаем записи клиент-адрес) уникальный ID_customer.

Как поступить правильно ? у меня есть пара вариантов решения (возможно, костыли ), но сперва хотелось бы услышать мнение опытных пользователей.


bigqpp
скайп
 
Ответить
Сообщениеколлеги, приветствую.

Хотелось бы продолжить данную тему

По ходу у меня возник вопрос, хочу услышать комментарии.

В таблице CUSTOMER, у меня присутствует список клиентов с их адресом и прочей информацией ( эти данные идут из отчетов контрагентов, и нормализировать их я , на данном этапе не смогу , в идеале конечно же хотелось отдельно список адресов, городов, привязанных к клиенту - мне это сейчас не доступно )

Вопрос заключается в следующем:

в будущем, понадобиться "схлопнуть" этот список, т.е. связать дубли между собой, как мне поступить. Т.к. сейчас я присваиваю каждому клиенту(читаем записи клиент-адрес) уникальный ID_customer.

Как поступить правильно ? у меня есть пара вариантов решения (возможно, костыли ), но сперва хотелось бы услышать мнение опытных пользователей.

Автор - qpp
Дата добавления - 09.01.2013 в 16:49
Формуляр Дата: Среда, 09.01.2013, 17:34 | Сообщение № 39
Группа: Гости
Цитата (qpp)
в будущем, понадобиться "схлопнуть" этот список, т.е. связать дубли между собой, как мне поступить.

Есть для этого стандартный визард Analyze Table, он сам находит дубли и предлагает разбить таблицу на несколько связанных
 
Ответить
Сообщение
Цитата (qpp)
в будущем, понадобиться "схлопнуть" этот список, т.е. связать дубли между собой, как мне поступить.

Есть для этого стандартный визард Analyze Table, он сам находит дубли и предлагает разбить таблицу на несколько связанных

Автор - Формуляр
Дата добавления - 09.01.2013 в 17:34
qpp Дата: Среда, 09.01.2013, 17:49 | Сообщение № 40
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 117
Репутация: 11 ±
Замечаний: 0% ±

Цитата (Формуляр)
Есть для этого стандартный визард Analyze Table, он сам находит дубли и предлагает разбить таблицу на несколько связанных

не подходит. Слишком уж это коряво работает, дубли там не явные, и ручной чистки не избежать


bigqpp
скайп
 
Ответить
Сообщение
Цитата (Формуляр)
Есть для этого стандартный визард Analyze Table, он сам находит дубли и предлагает разбить таблицу на несколько связанных

не подходит. Слишком уж это коряво работает, дубли там не явные, и ручной чистки не избежать

Автор - qpp
Дата добавления - 09.01.2013 в 17:49
Мир MS Excel » Вопросы и решения » Excel и другие приложения » Access » Access структура БД (Прошу посмотреть и прокомментировать структуру базы)
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!