| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MS Access > Вычисляемое поле |
| Автор: alexIrish 27.8.2007, 13:58 |
| Здраvствуйте. Надеюсь Все кто хотел здорово погуляли на встречe участникоv форума. Возникла воt такая проблема. Как создать вычисляемое полe Select ... Таблица1.поле1 / (Таблица2.поле1 гдe Таблица1.поле2=Таблица2.поле 2) As FieldName.... Spasibo. |
| Автор: Akina 27.8.2007, 15:21 | ||
Так и создать:
|
| Автор: alexIrish 31.8.2007, 13:31 |
| Прошу прошение, есть дополнение к теме. Таблица1 Номер Т | Материал | Kолво | Юзер | Дата 1 а 3 Коля 22.02.07 2 б 4 Петя 23.02.07 2 в 2 Петя 23.02.07 3 а 10 Вася 24.02.07 .... Таблица2 Материал | Колво в 1й коробке а 1 б 2 ц 4 ..... Нужен запрос ~ : Select Count( Distinct Таблица1.[Номер Т]) as F1, count (Таблица1.[Номер Т] as F2, SUM (Kолво) as F3, SUM( IIF (Таблица1.Материал Exist (Таблица2.Материал), Таблица1.Kолво/Таблица2.[Колво в 1й коробке] Where Таблица1.Материал =Таблица2.Материал) , NULL) as [Kолво Коробок], Таблица1.Юзер,Таблица1.Дата Group by Таблица1.Юзер,Таблица1.Дата Pроблема v вычисляемом полe [Колво коробок] Спасибо. |
| Автор: Akina 31.8.2007, 16:07 | ||
Переделайте постинг. |
| Автор: alexIrish 31.8.2007, 16:23 | ||||||
Если бы я знал как написать етот запрос без ошибок, я бы наверное сделал бы ето сам. ;) Я знаю что Аксесс не поддерживает структуру Count(Distinct ...). И написал только что бы дать понять что запрос должен вернуть как подсчет кол-ва всех линий транзакций, так и колво самих транзакций.
Опять же понимаю что вот ето не правильно:
И спрашиваю как сделать что бы было правильно. Rgds, |
| Автор: alexIrish 1.9.2007, 01:09 |
| Хорошо мы пойдем другим путем. таблица1 отображет движение материалов по складу компании( какой материал , сколько,кем и когда переместили) каждое передвижение/транзакция имеет свой уникальный номер (Номер Т), и может включать несколько линий( т.е разных материалов, т.е. можно взять несколько разных материалов из разных мест и переместить их вдругое место за одну транзакцию) таблица2 показывает упаковку материалов ( колво частей в одной коробке)нo содержит информацию не о всех возможных материалах что есть на складе. надо составить отчет, показывающий сколько всего Юзер/оператор сделал транзакций, сколько всего линий включают ети транзакции(сколько локейшинов посетил оператор), колво перемещенных частей , КОЛВО перемещенных КОРОБОК (если есть информация в таблице2, если материала нет в таблице 2, то ячейка пустая) за день/неделю/месяц. Jа рассказал задачу жене, котаря в IT только знает Интернет и Е-маил, она поняла. |
| Автор: bopoha 1.9.2007, 11:53 | ||||
| Вопрос по поводу таблицы2. Почему на основании справочника об упаковке товара, делается вывод о наличии коробок? Решение. Не вижу смысле создавать очень сложный но один зарпос. Это тяжело сопровождать. Запрос очень простой, нужно объединить таблицы:
А дальше этот запрос сделать источником данных отчета. При помощи отчета можно произвести нужные группировки по уровням, подсчеты количества и сумм в пределах группы. И самое главное - фильтр по дате очень просто наложить при открытии. Поле [Таблица2].Материал будет равно Null, если нет соответствующей записи в Таблице2. Второй вариант решение, программный расчет (с использованием запросов конечно) во временную таблицу (развернутую, как предыдущий запрос). Это необходимо тогда, когда данных очень много, а запрашиваются маленькие временные периоды. В этом случае отчет будет работать (группировать) быстрее. И совсем маленький бонус - отчет получается хранимым и к нему можно возратиться.
Я бы тоже понял, чтобы отвязались |
| Автор: alexIrish 2.9.2007, 02:18 | ||
А вывод о наличии не делается. Информация об упаковке берется что бы определить обьем транзакции. На основании колва самого матриала ето сделать сложно, т.к. можно переместить 1000 винтов по 1000 в коробке и 1000 LCD eкранов по 10 в коробке. А pо количеству коробок можно более четко проанализировать продуктивность работы операторов на складе (по мнению менеджера логистики). за совет обьединить таблицы в запросе спасибо. Вижу свет в конце тонеля. Pо крайней мере следующим запросом получу колво коробок. |
| Автор: Anark1 2.9.2007, 10:07 | ||
Не очень правильная проектировка БД. Если за одну транзакцию можно перебросить несколько материалов, то придется создавать в таблице1 столько записей, сколько было пакетов для одной транзакции. Я бы создал зависимую таблицу
Где, TR_ID поле внешнего ключа, которое ссылается на Таблица1.Номер_Транзакции. Тогда будет возможность использовать уникальность поля Номер_транзакции в таблице1. И плюс уменьшился бы вес БД. |
| Автор: alexIrish 2.9.2007, 20:09 |
| А я базу и не проектировал. За основ берется отчет из системы SAP, который просто выгружает на сетевой диск техтовый файл со всеми транзакциями за неделю. Моя задача все ето перелопатить так что бы менеджеры видели наглядно то чего они хотят видеть. Ну не нравится им сама SAP. A желания у них разные и меняются раз от раза. И создавать( читать проектировать) базы для етого считаю нет необходимости. Идем наиболее легким и быстрым путем. Все в Access, пoтом запросами выбираем то чего надо, считаем, если нужна история то заносим в итоговые таблицы. И красиво показываем, с диаграммами и прочей чепухой. У меня зарплата почасовая, могу позволить себе потренероваться За совет спасибо. |
| Автор: Anark1 2.9.2007, 20:35 |
| В таком случае, вопрос исчерпан ? |