1

我有一张销售表

SALE_ID   |   Product_Code    |  Qty   |  Sales_Value  | Taxes ....
==========+===================+========+===============+=========
001       |   AAAA            |   1    |  1000         | 50     ....
001       |   BBBB            |   1    |  10           | 0.5
002       |   CCCC            |   1    |  30           | 1.5
002       |   AAAA            |   1    |  1000         | 1.5

我正在尝试获取一个表格,该表格显示一种产品与具有相同销售 ID 的另一种产品(在同一张发票上出售)一起销售的次数

Product ID  |  Product ID 2   |  Sales Together
============+=================+==================
AAAA        |  BBBB           |      1
AAAA        |  CCCC           |      1
BBBB        |  AAAA           |      1
BBBB        |  CCCC           |      0
CCCC        |  AAAA           |      1
CCCC        |  BBBB           |      0

我正在使用 MS SQL,我想我必须进行分组查询,按销售额分组,然后是产品 ID,但这就是我对如何交叉计算销售额感到困惑的地方。

如果方便的话,我还有一张产品大师表

Product_ID   |  Description    |
=============+=================|
AAAA         | Battery         |
BBBB         | Flashlight      |
CCCC         | Radio           |
4

1 回答 1

4

我认为这应该这样做

SELECT P1.Product_Code,
       P2.Product_Code,
       Count(DISTINCT S1.SALE_ID)
FROM   Product P1
       JOIN Product P2
         ON P1.Product_Code > P2.Product_Code
       LEFT JOIN Sales S1
                 INNER JOIN Sales S2
                   ON S1.SALE_ID = S2.SALE_ID
         ON S1.Product_Code = P1.Product_Code
            AND S2.Product_Code = P2.Product_Code
GROUP  BY P1.Product_Code,
          P2.Product_Code 
于 2012-12-15T18:35:33.823 回答