Добрый день!
Я новичек. Изучаю Qlik Sense.
Искала ответ на свой вопрос в руководствах по Qlik, но либо не все понимаю, либо это невозможно сделать.
Прошу помочь, кто знает.
Задача такая:
Есть загруженные базы
Продаж
Orders:
LOAD
ID_Order,
ID_Sellers,
[Date],
ID_Product,
Product_count,
Product_sum
FROM ..........( table is Orders);
ID_Order ID_Sellers Date ID_Product Product_count Product_sum
1884 CB0000006 13.02.16 CB000000131 1.00 140 000,00
1884 CB0000006 13.02.16 CB000000332 1.00 220 000,00
1876 CB0000006 13.02.16 CB000000639 1.00 110 000,00
1876 CB0000006 13.02.16 CB000000640 1.00 110 000,00
1876 CB0000006 13.02.16 CB000002362 1.00 110 000,00
1876 CB0000006 13.02.16 CB000002365 1.00 110 000,00
1876 CB0000006 13.02.16 CB000002366 1.00 110 000,00
1876 CB0000006 13.02.16 CB000002368 1.00 110 000,00
1876 CB0000006 13.02.16 CB000002369 1.00 110 000,00
1876 CB0000006 13.02.16 CB000002529 1.00 110 000,00
1876 CB0000006 13.02.16 CB000002531 1.00 110 000,00
1882 CB0000007 13.02.16 CB000000754 1.00 110 000,00
1878 CB0000007 13.02.16 CB000002455 1.00 140 000,00
1877 CB0000007 13.02.16 CB000002589 1.00 20 000,00
1882 CB0000007 13.02.16 CB000002842 1.00 120 000,00
1911 CB0000006 15.02.16 CB000001661 2.00 270 000,00
1910 CB0000006 15.02.16 CB000002387 1.00 140 000,00
1910 CB0000006 15.02.16 CB000002768 1.00 120 000,00
1919 CB0000007 16.02.16 CB000000646 1.00 110 000,00
1916 CB0000007 16.02.16 CB000002089 1.00 110 000,00
1916 CB0000007 16.02.16 CB000002104 1.00 110 000,00
1916 CB0000007 16.02.16 CB000002644 2.00 180 000,00
1922 CB0000006 17.02.16 CB000000374 1.00 220 000,00
1926 CB0000006 17.02.16 CB000000586 1.00 220 000,00
1925 CB0000006 17.02.16 CB000002678 1.00 270 000,00
1925 CB0000006 17.02.16 CB000002836 1.00 120 000,00
1930 CB0000007 17.02.16 CB000000595 1.00 220 000,00
1928 CB0000007 17.02.16 CB000002166 1.00 140 000,00
1930 CB0000007 17.02.16 CB000002336 1.00 140 000,00
1930 CB0000007 17.02.16 CB000002838 1.00 120 000,00
и не связная база
Бонусов(справочник)
ProductSet:
LOAD ID_ProductSet,
ProductSet_Count,
Pr_SetBonus
FROM............ (table is ProductSet);
ID_ProductSet ProductSet_Count Pr_SetBonus
1 1 500
2 2 1 500
3 3 2 500
4 4 3 500
5 5 5 000
6 6 5 000
7 7 5 000
Каждому ID_Order по соответствующему ID_Sellers и Date может соответствовать от 1 и более ID_Product
нужно создать отдельную не связную новую таблицу ХХХ:, которую потом связать с ProductSet:
В таблице ХХХ: должны остаться те же поля из Orders: ID_Order, ID_Sellers, Date, (схлопнутые Discinct).
Поля: Product_sum меняется на Or_sum и суммирует Product_sum ,
Product_ count меняется на Or_count и суммирует Product_ count ,
Вместо ID_Product появится новое поле ID_ProductSet (через которое потом связываться) подсчитывает ID_Product строки
В итоге должна получится такая табл.
ID_Order ID_Sellers Date ID_ProductSet Or_count Or_sum
1884 CB0000006 13.02.16 2 2 360 000,00
1876 CB0000006 13.02.16 9 9 990 000,00
1882 CB0000007 13.02.16 2 2 330 000,00
1878 CB0000007 13.02.16 1 1 140 000,00
1877 CB0000007 13.02.16 1 1 20 000,00
1911 CB0000006 15.02.16 1 2 270 000,00
1910 CB0000006 15.02.16 2 2 260 000,00
1919 CB0000007 16.02.16 1 1 110 000,00
1916 CB0000007 16.02.16 3 4 400 000,00
1922 CB0000006 17.02.16 1 1 220 000,00
1926 CB0000006 17.02.16 1 1 220 000,00
1925 CB0000006 17.02.16 2 2 390 000,00
1930 CB0000007 17.02.16 3 3 480 000,00
1928 CB0000007 17.02.16 1 1 140 000,00
Почему именно нужна такая таблица. По полю ID_ProductSet потом нужно соединить (Concatenate) таблицу ProductSet: и получить
ID_Order ID_Sellers Date ID_ProductSet Or_count Or_sum Pr_SetBonus
1884 CB0000006 13.02.16 2 2 360 000,00 1000
1876 CB0000006 13.02.16 9 9 990 000,00 2500
1882 CB0000007 13.02.16 2 2 330 000,00 1000
1878 CB0000007 13.02.16 1 1 140 000,00 500
1877 CB0000007 13.02.16 1 1 20 000,00 500
1911 CB0000006 15.02.16 1 2 270 000,00 500
1910 CB0000006 15.02.16 2 2 260 000,00 1000
1919 CB0000007 16.02.16 1 1 110 000,00 500
1916 CB0000007 16.02.16 3 4 400 000,00 1500
1922 CB0000006 17.02.16 1 1 220 000,00 500
1926 CB0000006 17.02.16 1 1 220 000,00 500
1925 CB0000006 17.02.16 2 2 390 000,00 1000
1930 CB0000007 17.02.16 3 3 480 000,00 1500
1928 CB0000007 17.02.16 1 1 140 000,00 500
После, по полученной таблице уже строить аналитический график.
Если кто-то что-нибудь посоветует, буду очень признательна.
Привет !
Какое хорошее ТЗ :)
Цитировать
нужно создать отдельную не связную новую таблицу ХХХ:, которую потом связать с ProductSet:
В таблице ХХХ: должны остаться те же поля из Orders: ID_Order, ID_Sellers, Date, (схлопнутые Discinct).
Поля: Product_sum меняется на Or_sum и суммирует Product_sum ,
Product_ count меняется на Or_count и суммирует Product_ count ,
Вместо ID_Product появится новое поле ID_ProductSet (через которое потом связываться) подсчитывает ID_Product строки
Для получения новой таблицы с агрегированными сведениями нам необходимо загрузить эту таблицу с группировкой по полям определяющим уникальность записи (ID_Order, ID_Sellers, Date, (схлопнутые Discinct)), для суммирования используем SUM(), для переименования используем AS, в итоге получим:
XXX:
load ID_Order, ID_Sellers, Date,
sum(Product_sum) as Or_count,
sum(Product_ count) as Or_count,
count(ID_Product) as ID_ProductSet
from orders.qvd(qvd)
group by load ID_Order, ID_Sellers, Date;
Проверьте .
Да , простых задач нам не ставят))))
Я примерно так и делала, но группировку не по трем полям поставила.
Скрипт попробовала. Дал одинаковую ошибку и в qlikview и qliksense
Имена полей должны быть уникальными в одной таблице
Orders_XXX:
LOAD
ID_Order,
ID_Sellers,
[Date],
sum(Product_sum) as Or_count,
sum(Product_count) as Or_count,
count (ID_Product) as ID_ProductSet
Resident [Orders]
Group by ID_Order, ID_Sellers, [Date];
Проверила, вроде уникальные наименования, что не нравится , не могу понять???
Извиняюсь, не
sum(Product_sum) as Or_count,
sum(Product_count) as Or_count,
а
sum(Product_sum) as Or_Sum,
sum(Product_count) as Or_count,
Сработало!
Спасибо.
Теперь буду дальше выкручивать эту таблицу, там еще несколько заданий по ней.
Есть еще небольшой вопрос.
В Qlikview он нормально срабатывает, а QlikSense не срабатывает.
При загрузке файла
Orders:
LOAD
ID_Order,
ID_Chek,
ID_Sellers,
[Date],
ID_Product,
Product_count,
Product_sum,
Order_sum
FROM
[\\psf\Home\Desktop\1 Orders Продажи с Kod.xlsx]
(ooxml, embedded labels, table is Orders);
Если я вставляю поле (где пробел сделан)
'Orders' as Type,
В Qlikview у меня появляется поле Type заполненное словом Orders,
а в QlikSense не срабатывает, ругается при загрузке.
Это особенность QlikSense?
Это поле я хотела ввести, чтобы потом при слиянии таблиц можно было идентифицировать даты.
Не буду создавать новой темы. Также про суммирование.
Почему при суммировании с условием (будь то 100 или 1М записей) всегда используется памяти почти одно и то же количество?
LOAD OBJECT
,DATE
,ARTICLE
,sum([QSale]) as sumQSale
,sum([QBuy]) as sumBuy
,sum([QSale]) - sum([QBuy]) as TotalD
from lib://QlikFolder/T33.qvd(qvd)
where NumberN<100
group by DATE, ARTICLE, OBJECT;
Хотел разбивать таблицу на части, чтобы получить суммирование. Если не ограничиваю, то у меня кончается память.