Помогите плз с запросом
От: susumanin Россия  
Дата: 15.02.10 12:12
Оценка:
Ситуация такая:
Есть Таблица №Раз вида:
Организация | Контрагент | Проект | Статья затрат | Сумма

В ней содержатся операции которые попадают в итоговый отчет (там еще куча полей, но они сейчас не нужны).

Еще есть Таблица №Два вида практически такого же:
Организация | Контрагент | Проект | Статья затрат | Процент

В Таблице №Два описывается какая доля от той или иной операции должна попасть в отчет. Попадает ли операция из Таблицы №Раз в отчет с полной суммой (100%), либо же сумма умножается на процент из Табл№Два определяется совпадением полей Табл.№Раз и Табл№2.
Причем в Табл№Два можно не заполнять все поля (обязательное тольо Процент + одно из полей на выбор). Пустое поле в Табл№2, к примеру, Контрагент, при заполненых остальных будет означать, что для всех контрагентов по этой указанной организации по указанному проэкту и статьи затрат нужно взять не всю сумму, а указанный процент от суммы. А может быть заполнены всего 2 поля: Проект и Процент. Тогда сумма всех операций (не важно от какой организации, с каким контрагентом и т.д.) из Табл.№Раз с этим проектом должна быть скорректирована согласно указанному проценту.

Вопрос: такую штуку можно обработать в запросе?
Если да, то скажите плз в какую сторону смотреть.
Re: Помогите плз с запросом
От: любой  
Дата: 15.02.10 12:19
Оценка:
Здравствуйте, susumanin, Вы писали:

S>Ситуация такая:

S>Есть Таблица №Раз вида:
S>Организация | Контрагент | Проект | Статья затрат | Сумма

S>В ней содержатся операции которые попадают в итоговый отчет (там еще куча полей, но они сейчас не нужны).


S>Еще есть Таблица №Два вида практически такого же:

S>Организация | Контрагент | Проект | Статья затрат | Процент

S>В Таблице №Два описывается какая доля от той или иной операции должна попасть в отчет. Попадает ли операция из Таблицы №Раз в отчет с полной суммой (100%), либо же сумма умножается на процент из Табл№Два определяется совпадением полей Табл.№Раз и Табл№2.

S>Причем в Табл№Два можно не заполнять все поля (обязательное тольо Процент + одно из полей на выбор). Пустое поле в Табл№2, к примеру, Контрагент, при заполненых остальных будет означать, что для всех контрагентов по этой указанной организации по указанному проэкту и статьи затрат нужно взять не всю сумму, а указанный процент от суммы. А может быть заполнены всего 2 поля: Проект и Процент. Тогда сумма всех операций (не важно от какой организации, с каким контрагентом и т.д.) из Табл.№Раз с этим проектом должна быть скорректирована согласно указанному проценту.

S>Вопрос: такую штуку можно обработать в запросе?

S>Если да, то скажите плз в какую сторону смотреть.

Так и пиши "(Раз.Контрагент=Два.Контрагент OR Два.Контрагент IS NULL)".
художников никогда не обижал
Re: Помогите плз с запросом
От: wildwind Россия  
Дата: 15.02.10 13:15
Оценка: :)
Здравствуйте, susumanin, Вы писали:

S>Вопрос: такую штуку можно обработать в запросе?

S>Если да, то скажите плз в какую сторону смотреть.

Нужно еще определить приоритеты, если из Т2 подходят несколько записей.

Ктати таблица 2 называется "OTCAT" ?
Re[2]: Помогите плз с запросом
От: susumanin Россия  
Дата: 15.02.10 15:05
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Нужно еще определить приоритеты, если из Т2 подходят несколько записей.

походу да, нужно)

W>Ктати таблица 2 называется "OTCAT" ?


Не, она никак не называется, поскольку дальше моей головы пока никуда (если форум не в счет) не пошла.
Re[2]: Помогите плз с запросом
От: susumanin Россия  
Дата: 15.02.10 15:14
Оценка:
Здравствуйте, любой, Вы писали:

Л>Так и пиши "(Раз.Контрагент=Два.Контрагент OR Два.Контрагент IS NULL)".


т.е. целиком условие соединения будет выглядеть^
"(Раз.Контрагент=Два.Контрагент OR Два.Контрагент IS NULL) ИЛИ
(Раз.Проект=Два.Проект OR Два.Проект IS NULL) ИЛИ
(Раз.Организация=Два.Организация OR Два.Организация IS NULL) ИЛИ
(Раз.СтатьяЗатрат=Два.СтатьяЗатрат OR Два.СтатьяЗатрат IS NULL)" ?

правильно ли я мыслю, что если будут повторы записей в табл№Два по такому условию, то в итоговый результат попадут 2 строки из Табл№Раз?
Re[2]: Помогите плз с запросом
От: susumanin Россия  
Дата: 15.02.10 15:53
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Ктати таблица 2 называется "OTCAT" ?

Сначала не правильно прочел как "остат", а потом когда поставили смайлик дошло.
Не, тут не про откаты. Тут про консолидацию.
Re[3]: Помогите плз с запросом
От: любой  
Дата: 15.02.10 16:30
Оценка: 2 (1)
Здравствуйте, susumanin, Вы писали:

S>правильно ли я мыслю, что если будут повторы записей в табл№Два по такому условию, то в итоговый результат попадут 2 строки из Табл№Раз?


Конечно. Там ещё ORDER BY в соответствии с приоритетом записей из "Два" не помешает.
художников никогда не обижал
Re[2]: Помогите плз с запросом
От: susumanin Россия  
Дата: 18.02.10 13:08
Оценка:
Здравствуйте, любой, Вы писали:

Л>Так и пиши "(Раз.Контрагент=Два.Контрагент OR Два.Контрагент IS NULL)".


Не прокатило. Допустим в Таб№Два есть запись:
Контрагент=Вася
Проект=Продажи
Процент=10
(остальные поля незаполнены).
Если условие объединения таблиц будет выглядеть:
(Раз.Контрагент=Два.Контрагент OR Два.Контрагент IS NULL) ИЛИ
(Раз.Проект=Два.Проект OR Два.Проект IS NULL) ИЛИ
(Раз.Организация=Два.Проект OR Два.Проект IS NULL) ИЛИ
(Раз.Статья=Два.Статья OR Два.Статья IS NULL)
то в итоговой таблице процент 10 будет стоять дли всех проектов "Продажи" с любым контрагентом.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.