0

我正在尝试进行查询,其中不包括与其他产品具有相同折扣百分比的产品。我也想使用子查询。这是我想出的,但我收到一条错误消息,“子查询返回超过 1 个值。当子查询遵循 =、!=、<、<=、>、>= 或当子查询用作表达式。”

SELECT ProductName,
 (SELECT DiscountPercent
 FROM Products
 GROUP BY DiscountPercent
 HAVING COUNT(DiscountPercent) = 1
 )
FROM Products

Fender Stratocaster 30.00
Gibson Les Paul 30.00
Gibson SG   52.00
Yamaha FG700S   38.00
Washburn D10S   0.00
Rodriguez Caballero 11  39.00
Fender Precision    30.00  
Hofner Icon 25.00
Ludwig 5-piece Drum Set with Cymbals    30.00
Tama 5-Piece Drum Set with Cymbals  15.00
4

2 回答 2

0
SELECT 
[ProductName],
[DiscountPercent]
FROM
(
SELECT ROW_NUMBER() OVER (PARTITION BY DiscountPercent ORDER BY ProductName) AS [ProductRank],
[ProductName],
[DiscountPercent]
FROM
[Products]
) AS Data
WHERE [ProductRank] = 1
于 2014-02-19T08:16:12.603 回答
0

尝试这个,

select * from (
select *,row_number()over (partition by Discount order by ProductName)rn from @t
)t4 where rn=1
于 2014-02-19T07:08:31.643 回答