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

私はMSSQLを使用しています。売上ごとにグループ化してから、製品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 に答える