使用Max命令进行分组

时间:2013-10-14 10:02:03

标签: sql-server-2008-r2 dataset max calculated-field

我正在使用SQL Server Report Builer 2008 R2,我是自学成才,虽然我可以很好地编写各种代码,但是如果这是一个非常简单的问题,我有一些主要知识黑洞如此道歉!

我想创建一个计算字段(理想速率),查看SKU编号,然后找到该sku的最高记录目标速率,从而为我提供每个完整小时应该做的,当前目标速率会改变基于那小时的可用时间(当没有时间可用时,零点出来)。

我尝试将“max”与群组结合使用,但一直遇到错误或不正确的信息。

时间----- SKU ---有效时间---实际 - 目标---可靠性 - 理想率
00:00 - 201168 ------ 45 ------------- 1299 ----- 1500 ----- 86.60%----- 2000
01:00 - 201168 ------ 00 ------------- 00 -------- 00 --------- 00.00%--- - 2000年 02:00 - 201168 ------ 60 ------------- 1500 ----- 2000 ----- 75.00%----- 2000
03:00 - 201701 ------ 57 ------------- 306 ------ 332.5 ----- 92.03%----- 350 04:00 - 201701 ------ 60 ------------- 108 ------ 350 ------- 44.08%----- 350 <登记/> 05:00 - 201701 ------ 30 ------------- 109 ------ 175 ------- 62.29%----- 350 <登记/> 06:00 - 202560 ------ 45 ------------- 505 ----- 600 -------- 84.17%----- 800 <登记/> 07:00 - 202560 ------ 00 ------------- 00 ------- 00 --------- 00.00%---- - 800
08:00 - 202560 ------ 60 ------------- 500 ------ 800 ------- 62.50%----- 800 <登记/> 09:00 - 201168 ------ 09 ------------- 101 ----- 300 -------- 33.67%----- 2000 <登记/> 10:00 - 201168 ------ 27 ------------- 606 ----- 900 -------- 67.33%----- 2000 < / p>

2 个答案:

答案 0 :(得分:0)

您能否提供您收到的详细信息或错误以及您提到的错误信息的示例?以下代码为您提供所需内容。

SELECT SKU, MAX([Target])
  FROM yourTable
 GROUP BY SKU 

答案 1 :(得分:0)

您需要使用子查询来获取给定SKU的最大费率,如下所示:

SELECT 
     Time 
    ,SKU
    ,Avaliable_Time
    ,Actual
    ,TargetLoginName
    ,Reliability
    ,i.Rate AS Ideal_Rate
FROM
    table T
LEFT OUTER JOIN
    (
        SELECT 
            SKU
            ,MAX(Rate) AS Rate
        FROM
            table 
        GROUP BY
            SKU
    ) i
    ON i.SKU = T.SKU