AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.09.2003, 14:39   #1  
MIkeFW is offline
MIkeFW
Участник
 
20 / 10 (1) +
Регистрация: 30.01.2002
Адрес: Санкт-Петербург
Повторяющиеся строки в отчете...
При формировании отчета используются следующие таблицы:
InventTable - из нее берется номенклатура
InventTrans - считается сумма количества
InventDim - в ней есть поле "Брак/Годные"

Как я понимаю связка такова:

InventTable - InventTrans - InventDim

Надо:
Если в отчет попадают строчки с Брак и Годные,
то надо вывести две строки с одной номенклатурой.

Если же в отчете только Годные,
то надо вывести одну строку.

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

Подскажите, пожалуйста, как лучше построить отчет?
Старый 05.09.2003, 09:25   #2  
LCh is offline
LCh
Участник
 
104 / 10 (1) +
Регистрация: 13.11.2002
Адрес: Санкт-Петербург
InventTrans - вообще таблица опасная.
Но я не понял сообщения - "если попадают две строки, то нужно две; если попадает одна - то нужно одну".
?
Старый 05.09.2003, 10:04   #3  
MIkeFW is offline
MIkeFW
Участник
 
20 / 10 (1) +
Регистрация: 30.01.2002
Адрес: Санкт-Петербург
Цитата:
Изначально опубликовано LCh
InventTrans - вообще таблица опасная.
Но я не понял сообщения - "если попадают две строки, то нужно две; если попадает одна - то нужно одну".
?
Для ясности приведу пример:

InventTable
ItemId
Ном_1
Ном_2

InventTrans
ItemId.................Qty.....................DimId
Ном_1...............2.........................dim_1
Ном_1...............1.........................dim_1
Ном_1...............4.........................dim_2
Ном_2...............5.........................dim_3
Ном_2...............6.........................dim_4

InventDim
DimId........................Brak
dim_1.......................годен
dim_2.......................брак
dim_3.......................годен
dim_4.......................годен

В таком варианте в отчете должно вывестись следующее:
ItemId.....................Sum(Qty).................Brak
Ном_1...................3
Ном_1...................4................................брак
Ном_2...................11

Вот как решить такую задачу, не перебирая всех строк в InventTrans?
Старый 05.09.2003, 10:23   #4  
LCh is offline
LCh
Участник
 
104 / 10 (1) +
Регистрация: 13.11.2002
Адрес: Санкт-Петербург
while select sum(qty)
inventtrans
group by itemid
join
inventdim
group by brak
where inventtrans.inventdimid == inventdim.inventdimid

в mssqlsrv это будет выглядеть примерно так:

select sum(qty), inventtrans.itemid, inventdim.brak
from inventtrans
inner join inventdim on inventtrans.inventdimid = inventdim.inventdimid
where inventtrans.dataareaid = 'tst'
and inventdim.dataareaid = 'tst'
group by inventtrans.itemid, inventdim.brak

з.ы. у тебя получилось новую складскую аналитику ввести? поделись секретом!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Цветные строки в Grid Sergo DAX: База знаний и проекты 14 19.04.2012 10:02
Как в отчете убрать лишние записи? Zman DAX: Программирование 5 17.01.2005 06:33
При создании строки в закупке статус строки становится "Отменено" AlexUnik DAX: Функционал 4 27.09.2004 16:05
Вычисление высоты строки в отчёте диначически при заданной ширине Atani DAX: Программирование 3 06.10.2003 09:22
Как убить лишние строки в отчете по распределению доходов? mad_pilot DAX: Программирование 1 25.10.2002 12:11

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:43.