1

我有一个包含以下列的表格:

+-------------------------------------------------+
| Client    Flow,   Trade Date, RIC Code, BuySell |
+-------------------------------------------------+
| Client A  Manual  29/3/13     AAPL.O      B     |
| Client A  DMA     29/3/13     AAPL.O      S     |
| Client C  DMA     28/3/13     AAPL.O      B     |
+-------------------------------------------------+

(修改表格以澄清客户 A 在两个流量上都进行了交易,因此应报告)

我需要查看哪个客户在相同的交易日期交易了相同的 RIC 代码,但跨不同的流程。

因此,对于上述内容,我希望看到类似的内容:

Client A, AAPL.0, 29/3/13, 2 

2 就像在两个不同的流程中进行的两次交易一样,它是买入和卖出(但实际上现在只看到不同流程的买入或卖出就可以了)。

上面的表格已经是从更宽的表格中分组的结果。我想不出这样做的好方法,任何帮助将不胜感激。

谢谢

4

2 回答 2

2

看来你需要一个自我加入。

你可以试试 :

SELECT t.Client, t.RICCode, t.TradeDate, COUNT(t.Flow) AS CNT 
FROM 
(
    SELECT a.Client, a.RICCode, a.TradeDate, a.FLow
    FROM trades a 
    INNER JOIN trades b ON a.Client = b.Client AND a.RICCode = b.RICCode AND a.TradeDate = b.TradeDate AND a.Flow <> b.Flow
    GROUP BY a.Client, a.RICCode, a.TradeDate, a.Flow
) AS t 
GROUP BY Client, RICCode, TradeDate;

演示:http ://sqlfiddle.com/#!2/01055/2 。

希望这可以帮助。

于 2013-08-29T08:52:09.163 回答
0

如果您可以忽略流量,那么这可能会奏效

SELECT client, [trade date], [ric code], Count(client)
FROM MyTable
GROUP BY client, [trade date], [ric code];
于 2013-08-29T08:20:16.503 回答