Импорт данных с помощью временных таблиц в Power BI

avatar
Eisen
8 августа 2021 в 23:41
594
1
0

У меня есть следующий запрос SQL, который я хочу использовать для импорта данных в Power BI. Это включает в себя создание временной таблицы и использование этой таблицы в качестве основного источника данных. Как я могу сделать это в Power BI? Я пытался использовать этот запрос в редакторе при загрузке данных из базы данных, но я продолжаю получать вот такую ​​ошибку enter image description here

В основном я использовал этот набор данных https://www.kaggle.com/kyanyoga/sample-sales-data и загрузил его в базу данных postgressql.

-- 1. Create temp table to house temporary results
DROP TABLE IF EXISTS product_quantity;
CREATE TEMP TABLE product_quantity
 (product_line varchar, this_month_quantity integer, last_month_quantity integer)

 --2. Quantity ordered for each Product line for current month is inserted into temporary table.
INSERT INTO product_quantity (product_line, this_month_quantity, last_month_quantity)
SELECT "productline", SUM("quantityordered"), 0
FROM test_schema.sales_data_sample
where "month_id" = 3 and "year_id" = 2003
GROUP BY "productline";

--3. Quantity ordered for each Product line for last month is inserted into temporary table.
INSERT INTO product_quantity (product_line, this_month_quantity, last_month_quantity)
SELECT "productline", 0, SUM("quantityordered")
FROM test_schema.sales_data_sample
where "month_id" = 2 and "year_id" = 2003
GROUP BY "productline";

--4. Retrieve required results.
select
    "product_line",
    sum("this_month_quantity") as "this_month_quantity",
    sum("last_month_quantity") as "last_month_quantity"
FROM product_quantity
group by "product_line"

Источник
Nick.McDermaid
9 августа 2021 в 00:04
0

Действительно ли таблица должна быть TEMP? (если дело в этом). Кроме того, вы можете попробовать отключить складывание в соответствии с сообщением

Eisen
9 августа 2021 в 00:06
0

Предпочтительно. Разве это невозможно? Вы знаете, почему я получаю эту ошибку?

Nick.McDermaid
9 августа 2021 в 00:07
0

Я предполагаю, что запрос слишком сложен для применения "складывания". Взгляните на этот пост об отключении сворачивания и посмотрите, поможет ли это: community.powerbi.com/t5/Desktop/Query-Folding-disable/td-p/…

Eisen
9 августа 2021 в 00:42
0

Я правда пробовал, не получилось :(

Nick.McDermaid
9 августа 2021 в 00:56
0

Вы говорите, что установили [EnableFolding=false], но все равно получаете ту же ошибку? Затем я предлагаю вам использовать обычную таблицу, а не временную, и посмотреть, поможет ли это.

Nick.McDermaid
9 августа 2021 в 00:59
0

Вы также можете просто преобразовать свой SQL в большой встроенный SQL-запрос вообще без временной таблицы.

Ответы (1)

avatar
Nick.McDermaid
9 августа 2021 в 01:27
0

Выполняется ли этот запрос без ошибок?

Я преобразовал ваш запрос в один большой встроенный запрос.

select
    ST."product_line",
    sum(ST."this_month_quantity") as "this_month_quantity",
    sum(ST."last_month_quantity") as "last_month_quantity"
FROM
(
    SELECT "productline", 
    SUM("quantityordered") as this_month_quantity, 
    0 as last_month_quantity
    FROM test_schema.sales_data_sample
    where "month_id" = 3 and "year_id" = 2003
    GROUP BY "productline"
    UNION ALL
    SELECT "productline", 
    0, 
    SUM("quantityordered")
    FROM test_schema.sales_data_sample
    where "month_id" = 2 and "year_id" = 2003
    GROUP BY "productline"
) as ST
group by ST."product_line"

(обратите внимание, я только что предположил преобразование - у меня нет postgresql для проверки)