如何在SQL Server查询中找到哪些产品与其他产品销售良好
我有一张销售表如何在SQL Server查询中找到哪些产品与其他产品销售良好,sql,sql-server,Sql,Sql Server,我有一张销售表 SALE_ID | Product_Code | Qty | Sales_Value | Taxes .... ==========+===================+========+===============+========= 001 | AAAA | 1 | 1000 | 50 .... 001 | BBBB | 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 |
我想这个应该可以
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
我想这个应该可以
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
你真的需要AAAA和BBBB的结果两轮显示两次吗?是否有另一个包含ProductID的表?如果是这样的话,它有多少行?销售表中有多少行?我真的不需要它,但我认为显示它会更方便,因为它需要额外的查询来删除重复项?是的,我还有一个带有产品ID的产品主控表。您真的需要AAAA和BBBB的结果同时显示两次吗绕道而行?是否有另一个包含ProductID的表?如果是这样的话,它有多少行?销售表中有多少行?我真的不需要它,但我认为它会更方便显示,因为它需要一个额外的查询来删除重复项?是的,我还有一个带有产品ID的产品主表。有没有办法修改它,以便我可以计算出有多少销售是否有一种方法可以修改它,这样我就可以计算出一种产品的销售量,无论它是否与另一种产品的销售量?