我正在尝试仅使用Symbol
和region
使用群组在SSRS中部署表格,并且不希望按交易进行分组,因为我的结果不正确。我使用了以下代码:
SELECT Symbol, Region, Trade, SUM(Profit) AS Total
FROM dbo.[15 Mins]
GROUP BY Symbol
HAVING SUM(Profit)<0
该报告称Column&#d; dbo.15 Mins.Trade&#39;在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。
我想要的是仅用符号对负数(利润)进行分组,并说当我点击SSRS报告上的加号时,它会进一步向下钻取并显示详细数据:符号 - 地区 - 贸易 - 利润每笔交易。
例如
SYMBOL REGION TRADE PROFIT
Apple NYSE BUY 100
Apple NYSE BUY -200
MSFT NYSE BUY 300
MSFT NYSE SELL 500
所以基本上我想要的SSRS:
1)获得具有负和(利润)的符号
SYMBOL REGION TRADE SUM(Profit)
(+)Apple -100
按下(+)符号后,表格会展开并显示以下内容:
SYMBOL REGION TRADE SUM(Profit)
Apple NYSE BUY 100
Apple NYSE BUY -200
答案 0 :(得分:1)
CREATE TABLE #a
(
symbol VARCHAR(100),
region VARCHAR(100),
trade VARCHAR(100),
profit int
)
INSERT INTO #a VALUES ('Apple', 'NYSE', 'BUY', 100 );
INSERT INTO #a VALUES ('Apple', 'NYSE', 'BUY', -200);
INSERT INTO #a VALUES ('MSFT ', 'NYSE', 'BUY', 300);
INSERT INTO #a VALUES ('MSFT ', 'NYSE', 'SELL', 500);
SELECT a.symbol ,
a.region ,
a.trade ,
a.profit,
b.profit AS negative_profit
FROM #a a
JOIN (
SELECT b.symbol, SUM(b.profit) profit FROM #a b GROUP BY b.symbol HAVING SUM(b.profit) < 0
) b
ON a.symbol = b.symbol
;
答案 1 :(得分:0)
这是您想要的,不同地区的不同行以及买/卖的不同行:
SELECT Symbol, Region, Trade, SUM(Profit) AS Total
FROM dbo.[15 Mins]
GROUP BY Symbol, Region, Trade
HAVING SUM(Profit)<0