ms access查询到数据透视列的SQL语法
我正在尝试为我的公司整理以前销售的数据,现在看起来是这样的:ms access查询到数据透视列的SQL语法,sql,ms-access,Sql,Ms Access,我正在尝试为我的公司整理以前销售的数据,现在看起来是这样的: Item1 Item2 Clock Spring Hands Nuts Dial Clock Clock Hands Hands Spring 我需要的是这个 Item1 Product1 Product2 Clock Spring Hands Hands Nuts Spring Dial Clock 我有大约1000个数据点,所以我想要动态的东西,但我做
Item1 Item2
Clock Spring
Hands Nuts
Dial Clock
Clock Hands
Hands Spring
我需要的是这个
Item1 Product1 Product2
Clock Spring Hands
Hands Nuts Spring
Dial Clock
我有大约1000个数据点,所以我想要动态的东西,但我做到了这一点:
SELECT transdata.item1, Product1, Product2, Product3
(
SELECT transdata.item1, transdata.item2,
'Product' + CAST(ROW_NUMBER() over (Partition By transdata.[item1] Order By transdata.item1) AS Varchar(10)) AS ColSequence
FROM transdata
) Temp
PIVOT
(
MAX(Product)
For ColSequence in (Product1, Product2, Product3)
)PIV
它说我有一个语法错误这在MS Access中会非常痛苦。但这个相对简单的版本最多适用于两列:
select item1, min(item2) as product1,
iif(min(item2) <> max(item2), max(item2), null) as product2
from transdata
group by item1
选择item1,min(item2)作为product1,
iif(最小值(项目2)最大值(项目2),最大值(项目2),null)作为产品2
从transdata
按项目分组1
是否有办法将其扩展到产品“n”问题是我有大量数据不确定最多有多少产品与第1项的值关联如果没有问题,这就足够了:)再次感谢@斯蒂芬斯塔德迈尔。只可能回答实际提出的问题(至少在大多数情况下)。这就回答了您提出的问题,即pivot中的两个产品。如果你有不同的问题,那么请作为新问题提问。