Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вычисляемое поле 
:(
    Опции темы
alexIrish
Дата 27.8.2007, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 26.1.2006
Где: Ireland, Dublin

Репутация: нет
Всего: нет



Здраvствуйте.
Надеюсь Все кто хотел здорово погуляли на встречe участникоv форума.

Возникла воt такая проблема.
Как создать вычисляемое полe Select ... Таблица1.поле1 / (Таблица2.поле1 гдe Таблица1.поле2=Таблица2.поле 2) As FieldName.... 

Spasibo.
PM MAIL   Вверх
Akina
Дата 27.8.2007, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Так и создать:

Код

Select (Таблица1.поле1 / Таблица2.поле1) As CalculatedField
From Таблица1, Таблица2
Where (Таблица1.поле2=Таблица2.поле2)



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
alexIrish
Дата 31.8.2007, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 26.1.2006
Где: Ireland, Dublin

Репутация: нет
Всего: нет



Прошу прошение, есть дополнение к теме.

Таблица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 [Колво коробок]
Спасибо.
PM MAIL   Вверх
Akina
Дата 31.8.2007, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454




M
Akina
  1. Пользуемся тегами Код (для кода)
  2. Пользуемся тегами Цитата (для таблиц данных)
  3. Пишем текст запроса построчно, с отступами, чтобы видна была структура
  4. Пишем запросы без синтаксических ошибок

Переделайте постинг.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
alexIrish
Дата 31.8.2007, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 26.1.2006
Где: Ireland, Dublin

Репутация: нет
Всего: нет



Цитата

Таблица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
.....


Если бы я знал как написать етот запрос без ошибок, я бы наверное сделал бы ето сам. ;)
Я знаю что Аксесс не поддерживает структуру Count(Distinct ...). И написал только что бы дать понять что запрос должен вернуть как подсчет кол-ва всех линий транзакций, так и колво самих транзакций.
Код

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.Дата

Опять же понимаю что вот ето не правильно:
Цитата

SUM( IIF (Таблица1.Материал Exist (Таблица2.Материал), Таблица1.Kолво/Таблица2.[Колво в 1й коробке] Where Таблица1.Материал =Таблица2.Материал) , NULL) as [Kолво Коробок], 

И спрашиваю как сделать что бы было правильно. smile 

Rgds,
PM MAIL   Вверх
Akina
Дата 31.8.2007, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(alexIrish @  31.8.2007,  17:23 Найти цитируемый пост)
написал только что бы дать понять что запрос должен вернуть как подсчет кол-ва всех линий транзакций, так и колво самих транзакций.

Во-первых, запрос НЕ ДАЕТ возможности это понять.
Во-вторых, от словесного пояснения намного понятнее пока не стало.
В третьих, написанный запрос состоит сплошь из ошибок (скажем, секция From просто отсутствует)

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


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
alexIrish
Дата 1.9.2007, 01:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 26.1.2006
Где: Ireland, Dublin

Репутация: нет
Всего: нет



Хорошо мы пойдем другим путем.
таблица1 отображет движение материалов по складу компании( какой материал , сколько,кем и когда переместили) каждое передвижение/транзакция имеет свой уникальный номер (Номер Т),  и может включать несколько линий( т.е разных материалов, т.е. можно взять несколько разных материалов из разных мест и переместить их вдругое место за одну транзакцию)
таблица2 показывает упаковку материалов ( колво частей в одной коробке)нo содержит информацию не о всех возможных материалах что есть на складе.

надо составить отчет, показывающий сколько всего Юзер/оператор сделал транзакций, сколько всего  линий включают ети транзакции(сколько локейшинов посетил оператор), колво перемещенных частей , КОЛВО перемещенных КОРОБОК (если есть информация в таблице2, если материала нет в таблице 2, то ячейка пустая) за день/неделю/месяц.

Jа рассказал задачу жене, котаря в IT только знает Интернет и Е-маил, она поняла.  smile   
PM MAIL   Вверх
bopoha
Дата 1.9.2007, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Вопрос по поводу таблицы2. Почему на основании справочника об упаковке товара, делается вывод о наличии коробок?

Решение.
Не вижу смысле создавать очень сложный но один зарпос. Это тяжело сопровождать.
Запрос очень простой, нужно объединить таблицы:
Код

SELECT [Таблица1].*, [Таблица2].Материал
FROM [Таблица1] RIGHT JOIN [Таблица2] ON [Таблица1].Материал = [Таблица2].Материал


А дальше этот запрос сделать источником данных отчета. При помощи отчета можно произвести нужные группировки по уровням, подсчеты количества и сумм в пределах группы. И самое главное - фильтр по дате очень просто наложить при открытии. Поле [Таблица2].Материал будет равно Null, если нет соответствующей записи в Таблице2.

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

Цитата(alexIrish @  1.9.2007,  01:09 Найти цитируемый пост)
Jа рассказал задачу жене, котаря в IT только знает Интернет и Е-маил, она поняла.

Я бы тоже понял, чтобы отвязались smile.
PM MAIL WWW ICQ Skype GTalk   Вверх
alexIrish
Дата 2.9.2007, 02:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 26.1.2006
Где: Ireland, Dublin

Репутация: нет
Всего: нет



Цитата

Вопрос по поводу таблицы2. Почему на основании справочника об упаковке товара, делается вывод о наличии коробок?

 А вывод о наличии не делается. Информация об упаковке берется что бы определить обьем транзакции. На основании колва самого матриала ето сделать сложно, т.к. можно переместить 1000 винтов по 1000 в коробке и 1000 LCD eкранов по 10 в коробке. А pо количеству коробок можно более четко проанализировать продуктивность работы операторов на складе (по мнению менеджера логистики).

за совет обьединить таблицы в запросе спасибо. Вижу свет в конце тонеля.
Pо крайней мере следующим запросом получу колво коробок.
PM MAIL   Вверх
Anark1
Дата 2.9.2007, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



Не очень правильная проектировка БД. Если за одну транзакцию можно перебросить несколько материалов, то придется создавать в таблице1 столько записей, сколько было пакетов для одной транзакции. Я бы создал зависимую таблицу

Код

Table3
ID  |  Материал  |  ...  | TR_ID


Где, TR_ID поле внешнего ключа, которое ссылается на Таблица1.Номер_Транзакции.
Тогда будет возможность использовать уникальность поля Номер_транзакции в таблице1. И плюс уменьшился бы вес БД.

Это сообщение отредактировал(а) Anark1 - 2.9.2007, 10:08


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
alexIrish
Дата 2.9.2007, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 26.1.2006
Где: Ireland, Dublin

Репутация: нет
Всего: нет



А я базу и не проектировал. 
За основ берется отчет из системы SAP, который просто выгружает на сетевой диск техтовый файл со всеми транзакциями за неделю.
Моя задача все ето перелопатить так что бы менеджеры видели наглядно то чего они хотят видеть. Ну не нравится им сама SAP.
A желания у них разные и меняются раз от раза. И создавать( читать проектировать) базы для етого считаю нет необходимости. Идем наиболее легким и быстрым путем. Все в Access, пoтом запросами выбираем то чего надо, считаем, если нужна история то заносим в итоговые таблицы.
И красиво показываем, с диаграммами и прочей чепухой. У меня зарплата почасовая, могу позволить себе потренероваться smile
За совет спасибо.
PM MAIL   Вверх
Anark1
Дата 2.9.2007, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



В таком случае, вопрос исчерпан ?  smile 


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0554 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.