Я использую SQL Server 2012. У меня есть две таблицы, пожалуйста, смотрите нижесводной таблицы не группировать результаты, как и ожидалось
Table 1 (Region_Strat)
STRAT SALES_P COMM
EU Bob AC
EU Dave AC
NA John JP
GB Mike AC
Table 2 (Sales_Records)
SALES_P AMT SHOP
Bob 5 ABC
Bob 10 DEF
Bob 3 GHI
Dave 12 ABC
John 3 DEF
Mike 11 LIK
У меня есть мнение называется vw_sales (сохраняемые в виде зрения, это не может быть изменено), который в основном добавляет столбец STRAT из таблицы Region_Strat в таблицу Sales_Records, чтобы дать мне таблицу ниже.
SALES_P AMT SHOP STRAT
Bob 5 ABC EU
Bob 10 DEF EU
Bob 3 GHI EU
Dave 12 ABC EU
John 3 DEF NA
Mike 11 LIK GB
Все в порядке. Затем я пытаюсь создать таблицу piviot (которая работает, но не дает мне требуемого результата). Мой запрос
SELECT SHOP, [EU],[NA],[GB]
INTO MY_DB.dbo.TEMP
FROM
(SELECT SALES.SHOP, cast(SALES.Amt as bigint) AS SumOfAmt, Region.COMM, Region.STRAT
FROM MY_DB.dbo.vw_sales AS SALES JOIN MY_DB.dbo.Region_Strat AS Region ON
SALES.SALES_P = Region.SALES_P
WHERE Region.COMM in ('AC','JP')) tbl
pivot
(sum(SumOfAmt) for STRAT IN([EU],[NA],[GB])) pvt order by SHOP
Результат я ожидал увидеть,
SHOP EU NA GB
ABC 17 null null
DEF 10 3 null
GHI 3 null null
LIK null null 11
Однако результат я вижу магазин DEF показано в два раза ниже.
SHOP EU NA GB
DEF 10 null null
DEF null 3 null
Как изменить Я меняю свой запрос, чтобы DEF показывался в одной строке?
Является ли это рабочий Я не Псевдонима 'STRAT_FUND' где-либо гайка используется в' где Clause' ** STRAT_FUND.COMM ** –
Извинения - копия и паста ошибка. Это должен быть регион, обновленный в моем посте. – mHelpMe