|
24.03.2008, 13:54 | #1 |
Участник
|
query and grou by по 2-м таблицам
Доброе время суток!
Задача: выбрать строки из одной таблици и кол-во строк соответстующие в другой таблице. Объясните почему не я вижу данные одной таблицы, а данные второй таблица с суммой строк нет. Что не так делаю? X++: query = new Query(); queryBuildDataSource = query.addDataSource(tableNum(PurchTable)); queryBuildDataSource.addSortField(fieldNum(PurchTable, PurchId)); queryBuildDataSource.addSortField(fieldNum(PurchTable, OrderAccount)); queryBuildDataSource.addSortField(fieldNum(PurchTable, DeliveryDate)); queryBuildDataSource.addRange(fieldnum(PurchTable,OrderAccount)).value(stVendAccount.valueStr());// поставщик queryBuildDataSource.addRange(fieldnum(PurchTable,PurchStatus)).value(queryvalue(PurchStatus::Backorder)); // Статус закупки открыто queryBuildDataSource.addRange(fieldnum(PurchTable,DeliveryDate)).value(queryRange(Str2Date(DateStart.valueStr(),123),Str2Date(DateEnd.valueStr(),123))); // Статус закупки открыто queryBuildDataSource2 = queryBuildDataSource.addDataSource(tableNum(PurchLine)); //queryBuildDataSource2.relations(true); queryBuildDataSource2.addLink(fieldNum(PurchLine, PurchId),fieldNum(PurchTable, PurchId)); queryBuildDataSource2.addSelectionField(fieldNum(PurchLine, LIneNum), SelectionField::Count); queryBuildDataSource2.orderMode(OrderMode::GroupBy); queryBuildDataSource2.addRange(fieldnum(PurchLine,ItemId)).value(stItemId.valueStr()); // номенкалатура queryBuildDataSource2.addRange(fieldnum(PurchLine,PurchStatus)).value(queryvalue(PurchStatus::Backorder)); //статус queryBuildDataSource2.addSortField(fieldNum(PurchLine, ItemId)); queryBuildDataSource2.addSortField(fieldNum(PurchLine, PurchStatus)); queryBuildDataSource2.joinMode(JoinMode::ExistsJoin); queryRun = new QueryRun(query); ItogTable_BRR.selectForUpdate(true); delete_from ItogTable_BRR; while(queryRun.next()) { _PurchTable = queryRun.get(tableNum(PurchTable)); //_PurchLine = queryRun.get(tableNum(PurchLine)); _PurchLine = queryRun.getNo(2); } |
|
24.03.2008, 14:29 | #3 |
Участник
|
да я вижу что не отрабатывает ... а как сделать чтоб отрабатывало? ... хочу всё сделать единым запросом... не разбивая ...
|
|
24.03.2008, 14:31 | #4 |
Участник
|
я его убирал толку нет ...
|
|
24.03.2008, 14:33 | #5 |
MCITP
|
ну как минимум отказаться от exists джоина. он вам по смыслу не нужен...
Делаете иннер джоин и групперуете всё как вам надо. (и не надо пытаться сделать одну таблицу ордер бай, а вторую груп бай, как вы похоже это хотите сделать в примере ) А то что вы написали, с точки зрения SQL - какой-то полный нонсенс...
__________________
Zhirenkov Vitaly |
|
24.03.2008, 14:46 | #6 |
Участник
|
да я тут и так и так крутил вертел ... уже всё перепробовал .. не даёт данные второй таблици и всё тут..
|
|
24.03.2008, 14:49 | #7 |
Участник
|
оппа....кажись получаеться .... продолжаю :-) ..... Спасибо всем!
|
|