Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用此特定查询从带有SQL的表中的每个组中选择前2个值_Sql_Sql Server 2008 - Fatal编程技术网

如何使用此特定查询从带有SQL的表中的每个组中选择前2个值

如何使用此特定查询从带有SQL的表中的每个组中选择前2个值,sql,sql-server-2008,Sql,Sql Server 2008,我有这个疑问。它给了我多行,第一列重复,数据在第二列和第三列 也许我在查询中做错了什么,因为它是一个带有内部连接的简单查询 尽管我需要每个结果行的前两行 表:牛仔裤、产品 牛仔裤:CHG_I,JeanID,CHG_Date 产品:CHG_I,描述,价格 查询: Select D.JeanID, P.Desc, P.Price FROM Products P inner join Jeans D on D.CHG_I = P.CHGPI Where D.CHG_Date=convert(date,

我有这个疑问。它给了我多行,第一列重复,数据在第二列和第三列

也许我在查询中做错了什么,因为它是一个带有内部连接的简单查询

尽管我需要每个结果行的前两行

表:牛仔裤、产品

牛仔裤:CHG_I,JeanID,CHG_Date 产品:CHG_I,描述,价格

查询:

Select D.JeanID, P.Desc, P.Price
FROM Products P inner join Jeans D on D.CHG_I = P.CHGPI
Where D.CHG_Date=convert(date,sysdatetime())
这给了我这个表格:

+-----------------------+
¦ JeanID - Desc - Price ¦
¦-----------------------¦
¦ 3559 - 5234523 - 4.49 ¦
¦ 3559 - 6235523 - 4.49 ¦
¦ 3559 - 9823923 - 4.49 ¦
¦ 3559 - 0809833 - 3.99 ¦
¦ 3559 - 1231212 - 3.99 ¦
¦ 3552 - 2352354 - 3.99 ¦
¦ 3440 - 5235325 - 2.99 ¦
¦ 3440 - 5235233 - 2.99 ¦
¦ 3882 - 2352352 - 2.99 ¦
¦ 3990 - 2623532 - 3.99 ¦
+-----------------------+
我需要修改我的查询以获得以下信息:

+-----------------------+
¦ JeanID - Desc - Price ¦
¦-----------------------¦
¦ 3559 - 5234523 - 4.49 ¦
¦ 3559 - 6235523 - 4.49 ¦
¦ 3552 - 2352354 - 3.99 ¦
¦ 3440 - 5235325 - 2.99 ¦
¦ 3440 - 5235233 - 2.99 ¦
¦ 3882 - 2352352 - 2.99 ¦
¦ 3990 - 2623532 - 3.99 ¦
+-----------------------+

正在搜索解决方案,但从此查询开始时无法获取它

类似帖子:谢谢!我刚把订单改成了珍妮。尽管解决方案是合理的。我需要回顾一下这个行号是如何工作的。我相信它给出了一个行号,然后我们用它作为索引来得到我们需要多少值。还是阿里。这就是我需要的。非常感谢没问题,很高兴它有帮助:
;With Results
AS
 (
    Select D.JeanID, P.Desc
            , P.Price, rn = ROW_NUMBER() OVER (PARTITION BY D.JeanID ORDER BY P.Price DESC)
    FROM Products P inner join Jeans D 
    on D.CHG_I = P.CHGPI
    Where D.CHG_Date=convert(date,sysdatetime())
 )
SELECT JeanID, Desc, Price
FROM Results
WHERE rn <= 2