【问题标题】:GROUP BY Month Number and YearGROUP BY 月数和年
【发布时间】:2013-06-07 17:11:08
【问题描述】:

我有一个查询,它产生一个月份数和一个年份。我想按月数和年对结果进行排序。因此,第 1 个月,第 2012 年是第一个,然后是 2,2012 年,依此类推。我该怎么做?

SELECT
    a.Vendor,
    vn.ACNAME,
    a.FiscalMonthNum,
    a.FiscalYear,
    a.ModDate,
    a.QtySold,
    a.ExtCost
FROM
    dbo.S2K_VEND vn
    INNER JOIN
(SELECT
    sd.IFPRVN AS Vendor,
    fc.FiscalMonthNum,
    fc.FiscalYear,
    sd.Mod_Date As ModDate,
    SUM(sd.SBQSHP) AS QtySold,
    SUM(sd.SBEPRC) AS ExtCost
FROM
    dbo.SalesData sd
    LEFT OUTER JOIN dbo.FiscalCalendar fc ON fc.FiscalDate = sd.SBINDT
GROUP BY
    sd.IFPRVN,
    fc.FiscalMonthNum,
    fc.FiscalYear,
    sd.Mod_Date
)a
ON vn.ACVEND = a.Vendor
ORDER BY
    a.FiscalMonthNum

【问题讨论】:

  • 使用order by like ORDER BY [Month Number], Year
  • 我同意 Srikanth,你可以使用:ORDER BY Month,Year

标签: tsql sql-server-2012-express


【解决方案1】:

你这样说:

order by FiscalMonthNum asc , -- Major order. Use 'asc' if you want it in ascending sequence (or simply omit it as that is the default)
         FiscalYear desc -- Minor order. Use 'desc' if you want it in descending sequence

【讨论】:

    【解决方案2】:

    试试

    SELECT
        a.Vendor,
        vn.ACNAME,
        a.FiscalMonthNum,
        a.FiscalYear,
        a.ModDate,
        a.QtySold,
        a.ExtCost
    FROM
        dbo.S2K_VEND vn
        INNER JOIN
    (SELECT
        sd.IFPRVN AS Vendor,
        fc.FiscalMonthNum,
        fc.FiscalYear,
        sd.Mod_Date As ModDate,
        SUM(sd.SBQSHP) AS QtySold,
        SUM(sd.SBEPRC) AS ExtCost
    FROM
        dbo.SalesData sd
        LEFT OUTER JOIN dbo.FiscalCalendar fc ON fc.FiscalDate = sd.SBINDT
    GROUP BY
        sd.IFPRVN,
        fc.FiscalMonthNum,
        fc.FiscalYear,
        sd.Mod_Date
    )a
    ON vn.ACVEND = a.Vendor
    ORDER BY
        a.FiscalMonthNum, a.FiscalYear
    

    【讨论】:

      猜你喜欢
      • 2010-10-05
      • 2015-10-21
      • 2022-06-12
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多