Sql server Microsoft SQL Server:如何按此列分组?通过不为我工作来分组

Sql server Microsoft SQL Server:如何按此列分组?通过不为我工作来分组,sql-server,Sql Server,我想按报价ID分组,但我无法使其工作。这件事我已经忙了一段时间了 编辑:我试图将数量项目分组到一列中,因此,例如,如果报价ID列中有3个项目具有相同的报价ID但数量不同,我希望以这种方式将它们显示在同一行中-$QuoteID、$QuantityFromRow1、$QuantityFromRow2、$QuantityFromRow3。 SELECT TOP(100) PPV8.dbo.CUSTOMER.ID As [Customer ID] , PPV8.dbo.CUSTOME

我想按报价ID分组,但我无法使其工作。这件事我已经忙了一段时间了

编辑:我试图将数量项目分组到一列中,因此,例如,如果报价ID列中有3个项目具有相同的报价ID但数量不同,我希望以这种方式将它们显示在同一行中-$QuoteID、$QuantityFromRow1、$QuantityFromRow2、$QuantityFromRow3。

SELECT TOP(100) 
    PPV8.dbo.CUSTOMER.ID As [Customer ID]
     , PPV8.dbo.CUSTOMER.NAME As [Customer]
     , PPV8.dbo.CUSTOMER.CITY As City, Null As [PM]
     , PPV8.dbo.CUSTOMER.STATE As State
     , PPV8.dbo.QUOTE_PRICE.QUOTE_ID As [Quote ID]
     , FLOOR(PPV8.dbo.QUOTE_PRICE.QTY) As Quantity
     , PPV8.dbo.QUOTE_LINE.PART_ID As [Part ID]
     , SUBSTRING(PPV8.dbo.QUOTE_LINE.CUSTOMER_PART_ID, 6, 12) As [Style #]
     , PPV8.dbo.QUOTE_LINE.DESCRIPTION As Description
     , PPV8.dbo.QUOTE_PRICE.UNIT_PRICE As [Unit Price]
     , PPV8.dbo.QUOTE_LINE.CREATE_DATE As [Create Date]
     , PPV8.dbo.QUOTE.SALESREP_ID As [Rep]
     , PPV8.dbo.QUOTE.STATUS As [Quote Status]
     , PPV8.dbo.QUOTE.FOLLOWUP_DATE As [Follow Up]
     , PPV8.dbo.QUOTE.EXPECTED_WIN_DATE As [Due Date] 
FROM
    CUSTOMER 
INNER JOIN
    QUOTE ON PPV8.dbo.CUSTOMER.ID = PPV8.dbo.QUOTE.CUSTOMER_ID 
INNER JOIN  
    QUOTE_LINE ON PPV8.dbo.QUOTE.ID = PPV8.dbo.QUOTE_LINE.QUOTE_ID 
INNER JOIN  
    QUOTE_PRICE ON PPV8.dbo.QUOTE_LINE.QUOTE_ID = PPV8.dbo.QUOTE_PRICE.QUOTE_ID 
                AND PPV8.dbo.QUOTE_LINE.LINE_NO = PPV8.dbo.QUOTE_PRICE.QUOTE_LINE_NO 
WHERE 
    PPV8.dbo.QUOTE.STATUS = 'A' 
    AND PPV8.dbo.QUOTE.EXPECTED_WIN_DATE > '20170101' 
ORDER BY
    PPV8.dbo.QUOTE.EXPECTED_WIN_DATE ASC
select语句中的所有(非聚合)列必须包含在group by子句中
因此,您忽略了group by这一点,我确信“group by quote id”对您来说意味着什么,因为您非常熟悉模式及其包含的数据。不幸的是,这对其他人来说毫无意义。你是说点菜吗?使用GROUPBY子句通常意味着某种聚合-这是您的目标吗?在按QuoteId分组后,您仍然需要所有这些列吗?GROUPBY的本质是它聚合与特定元素(在您的例子中是QuoteId)关联的数据。但是,如果CustomerId不同,它将如何聚合CustomerId?还是描述?是否每个QuoteId只需要一行,而不聚合任何其他值?您如何确定保留/放弃哪一行?请更明确地说明你的目标,因为听起来分组不是实现目标所需的工具。为了子孙后代,学习最佳实践。保持一致性是最重要的。为每个表指定一个别名,并使用该别名引用每个列。不要提及customer和PPV8.dbo.customer-这会使您的代码难以阅读,并鼓励出错。如果您希望得到答案,您的问题需要更长的时间并包含更多信息。