powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как добавить поле в cross-table
20 сообщений из 20, страница 1 из 1
Как добавить поле в cross-table
    #39921267
Arimle1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,

Делал кросс-таблицы. Но, не могу добавить в результат этого таблицу некоторые поля(MA, F, K, S, M, PS, CIRO, FAIZ, AP_ODEM, RP, GV10, AZ2, TOTAL_GV). Все эти поле ест в MEXARIC.DBF
Эти поле в SELECT не могу добавить.
И APPEND FROM в другую таблицу (HES.DBF) тоже могу делать.

Помогите пожалуйста, как это можно делать?
...
Рейтинг: 0 / 0
Как добавить поле в cross-table
    #39921382
Arimle1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Немного упрастилась моя задача. Я делал кросс-таблицу, сейчас хочу добавить в эту таблицу еще две поля: stoimost1=KOLICESTVO*SENA1 и stoimost2=KOLICESTVO*SENA2. Проблема в том что, цена каждого продукта разные.

Скажите пожалуйста, как это можно делать?
...
Рейтинг: 0 / 0
Как добавить поле в cross-table
    #39921402
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Явно всем в облом... :(

Понять смысл задачи не получилось, но попробуй так:

Код: sql
1.
select *, KOLICESTVO*SENA1 as stoimost1, KOLICESTVO*SENA2 as stoimost2 FROM MEXARIC



результат увидишь, дальше думай...
...
Рейтинг: 0 / 0
Как добавить поле в cross-table
    #39921410
Arimle1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Redrik, я не хочу добавить эти поля в таблицу mexaric, мне надо эти поле добавить в результат запроса
...
Рейтинг: 0 / 0
Как добавить поле в cross-table
    #39921632
Arimle1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробую еще раз обяснить свою задачу.
У меня ест таблица: mexaric.dbf. В этой таблице ест поле PRODUKT c двумя ценами (SENA1, SENA2), эти продукты кому продается(BOLGE_TRX) и количество продукта (KOLICESTVO). Делаю кросс таблицу с помощи запроса используя поле PRODUKT и BOLGE_TRX и KOLICESTVO.
До этого проблема нету,
Но, мне надо добавить в результат этого запроса еще 2 поля: STOIMOST1=KOLICESTVO*SENA1 и STOIMOST2=KOLICESTVO*SENA2.
Помогите пожалйста, как можно это делать?
...
Рейтинг: 0 / 0
Как добавить поле в cross-table
    #39921640
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arimle1
Redrik, я не хочу добавить эти поля в таблицу mexaric, мне надо эти поле добавить в результат запроса
А где вы увидели это самое добавление в mexaric? Особенно всего лишь в запросе на получение?
...
Рейтинг: 0 / 0
Как добавить поле в cross-table
    #39921642
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arimle1
Попробую еще раз обяснить свою задачу.
У меня ест таблица: mexaric.dbf. В этой таблице ест поле PRODUKT c двумя ценами (SENA1, SENA2), эти продукты кому продается(BOLGE_TRX) и количество продукта (KOLICESTVO). Делаю кросс таблицу с помощи запроса используя поле PRODUKT и BOLGE_TRX и KOLICESTVO.
До этого проблема нету,
Но, мне надо добавить в результат этого запроса еще 2 поля: STOIMOST1=KOLICESTVO*SENA1 и STOIMOST2=KOLICESTVO*SENA2.
Помогите пожалйста, как можно это делать?
Никак. По крайней мере при использовании стандартных средств.
Есть два варианта:
1. Рисуете свой собственный кросс-табулятор с блэкджеком и прочим.
2. Отказываетесь от идеи-фикс сделать все одним запросом и делаете еще один запрос уже к результату работы кросс-табулятора с присоединением нужных таблиц и полей из них.
...
Рейтинг: 0 / 0
Как добавить поле в cross-table
    #39921659
Arimle1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov

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


Я могу делать 2-й запрос, но присоединенит их не получается.
Как это можно делат? Вы не мoжете помогать мне?
...
Рейтинг: 0 / 0
Как добавить поле в cross-table
    #39921675
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arimle1
Sergey Sizov

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


Я могу делать 2-й запрос, но присоединенит их не получается.
А что и как вы делаете мы должен догадаться?Как это можно делат?Написав правильный второй запрос. Вы не мoжете помогать мне?Вслепую? Может таки догадаетесь показать сами запросы, а не их описание?
...
Рейтинг: 0 / 0
Как добавить поле в cross-table
    #39921678
Arimle1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov
Вслепую? Может таки догадаетесь показать сами запросы, а не их описание?
...
Рейтинг: 0 / 0
Как добавить поле в cross-table
    #39921712
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arimle1

А нельзя ли использовать менее экзотический формат? ZIP, например.
...
Рейтинг: 0 / 0
Как добавить поле в cross-table
    #39921726
Arimle1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov,
можно конечно.
...
Рейтинг: 0 / 0
Как добавить поле в cross-table
    #39921759
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arimle1
но присоединенит их не получается.
Во-первых, никакого присоединения во втором запросе что-то совсем не видать.
Во-вторых, в первом запросе явно перепутаны местами поля и добавлены те, которые там совершенно не нужны в силу того, что они кросс-табулятором игнорируются. Кросс-табулятор обрабатывает только и исключительно 3(три) поля.
Ниже код в соответствии с моим пониманием задачи и здравого смысла:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Clear All

Select M.PRODUKT, M.Bolge_trx, Sum(M.KOLICESTVO) ;
  FROM MEXARIC m;
  GROUP By M.PRODUKT, M.Bolge_trx ;
  ORDER By M.PRODUKT, M.Bolge_trx ;
  WHERE Date>=Date(2020, 01, 25);
  INTO Cursor CrossTab
Do (_Genxtab) With 'Query',.T.,.T.,.T.,,,,.T.,0,.F.

Select q.*, M.SENA1, M.SENA2, total*M.SENA1 as STOIMOST1, total*M.SENA2 as STOIMOST2 ;
  from Query q ;
  inner Join MEXARIC m on q.PRODUKT= M.PRODUKT;
  INTO Cursor  FinalCursor
Browse
...
Рейтинг: 0 / 0
Как добавить поле в cross-table
    #39921785
Arimle1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov, большое спасибо Вам за быстрый ответ.
Но дело в том что мне 1-й запрос в таком виде должна была

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
Select  M.Bolge_trx, M.PRODUKT,  Sum(M.KOLICESTVO) ;
  FROM MEXARIC m;
  GROUP By  M.Bolge_trx, M.PRODUKT ;
  ORDER By  M.Bolge_trx, M.PRODUKT ;
  WHERE Date>=Date(2020, 01, 25);
  INTO Cursor CrossTab
Do (_Genxtab) With 'Query',.T.,.T.,.T.,,,,.T.,0,.F.
BROW



Т.е., столбцы и строки должны менятся местами. И поэтому трудно вычислить сумма для STOIMOST1 и STOIMOST2
...
Рейтинг: 0 / 0
Как добавить поле в cross-table
    #39921826
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arimle1
Sergey Sizov, большое спасибо Вам за быстрый ответ.
Но дело в том что мне 1-й запрос в таком виде должна была

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
Select  M.Bolge_trx, M.PRODUKT,  Sum(M.KOLICESTVO) ;
  FROM MEXARIC m;
  GROUP By  M.Bolge_trx, M.PRODUKT ;
  ORDER By  M.Bolge_trx, M.PRODUKT ;
  WHERE Date>=Date(2020, 01, 25);
  INTO Cursor CrossTab
Do (_Genxtab) With 'Query',.T.,.T.,.T.,,,,.T.,0,.F.
BROW



Т.е., столбцы и строки должны менятся местами. И поэтому трудно вычислить сумма для STOIMOST1 и STOIMOST2
Прелестно! И как вы себе представляете конечный результат? Нарисуйте табличку в Excel и заполните ее данными из вашей таблицы. И покажите мне эту табличку. Если, конечно, она у вас получится.
Вы в строке пишете Покупателя, но хотите в эту же строку влепить цены и итоги? Цены чего? Одного продукта или таки всех товаров, которые он купил? Или таки вы хотите впихнуть в клетку на пересечении покупателя и товара всё сразу - и цены и суммы?
Вы вообще понимаете, что пытаетесь делать шахматку?
...
Рейтинг: 0 / 0
Как добавить поле в cross-table
    #39921850
Arimle1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Excel в таком виде будет:
...
Рейтинг: 0 / 0
Как добавить поле в cross-table
    #39921860
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arimle1,
теперь сравни любой total из Excel с результатом, который ты настоятельно называешь правильным для запроса
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
Select  M.Bolge_trx, M.PRODUKT,  Sum(M.KOLICESTVO) ;
  FROM MEXARIC m;
  GROUP By  M.Bolge_trx, M.PRODUKT ;
  ORDER By  M.Bolge_trx, M.PRODUKT ;
  WHERE Date>=Date(2020, 01, 25);
  INTO Cursor CrossTab
Do (_Genxtab) With 'Query',.T.,.T.,.T.,,,,.T.,0,.F.
BROW


И потом интересует вопрос цены каких товаров использованы в каждой строке в поле Stoimocst1 и Stoimost2? Цены какого товара использованы, например, во второй строке если там два разных товара?
...
Рейтинг: 0 / 0
Как добавить поле в cross-table
    #39921863
Arimle1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov

И потом интересует вопрос цены каких товаров использованы в каждой строке в поле Stoimocst1 и Stoimost2? Цены какого товара использованы, например, во второй строке если там два разных товара?


Stoimocst1= Kolicestvo 1-го товара*Sena 1-го товара + Kolicestvo 2-го товара*Sena 2-го товара + Kolicestvo 3-го товара*Sena 3-го товара +...
...
Рейтинг: 0 / 0
Как добавить поле в cross-table
    #39921916
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arimle1,
ну что, получите. Там у вас еще дата фигурирует, но это уже самостоятельно в качестве домашнего задания.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
CLEAR ALL

SELECT M.Bolge_trx, M.PRODUKT, SUM(M.KOLICESTVO) ;
    FROM MEXARIC m ;
    GROUP BY M.Bolge_trx, M.PRODUKT ;
    WHERE DATE>=Date(2020, 1, 25) ;
    INTO cursor TabItems
DO (_GENXTAB) WITH 'CrossTabItems',.t.,.t.,.t.,,,,.t.,0,.f.
*BROWSE

SELECT '' as Bolge_trx, M.PRODUKT, SUM(M.KOLICESTVO) ;
    FROM MEXARIC m ;
    GROUP BY M.Bolge_trx, M.PRODUKT ;
    WHERE DATE>=Date(2020, 1, 25) ;
    INTO cursor TabTotals
DO (_GENXTAB) WITH 'CrossTabTotals',.t.,.t.,.t.,,,,.t.,0,.f.
*BROWSE

SELECT M.Bolge_trx, Sum(M.sena1*KOLICESTVO) as stiomost1, Sum(M.SENA2*KOLICESTVO) as stiomost2 ;
    FROM MEXARIC m;
    GROUP BY M.Bolge_trx;
    WHERE DATE>=Date(2020, 1, 25) ;
    INTO cursor SubTotals
*BROWSE

SELECT '' as Bolge_trx, stiomost1, stiomost2 ;
    FROM SubTotals ;
    INTO cursor Totals
*BROWSE

Select Bolge_trx, Sum(stiomost1) as stiomost1, Sum(stiomost2) as stiomost2 ;
    From Totals ;
    GROUP BY Bolge_trx;
    INTO cursor AllTotals
*BROWSE

Select cti.*, stiomost1, stiomost2 from CrossTabItems cti ;
inner join SubTotals ctt on cti.Bolge_trx = ctt.Bolge_trx  ;
union all ;
Select ctt.*, stiomost1, stiomost2 from CrossTabTotals as ctt inner join AllTotals att on .t.
...
Рейтинг: 0 / 0
Как добавить поле в cross-table
    #39922249
Arimle1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov,
большое Вам спасибо. Вы очень помогли мне. Насчет домашнего задания демаю что справлюсь.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как добавить поле в cross-table
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]