0

我有一个查询,它产生一个月数和一个年。我想按月数和年对结果进行排序。因此,第 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
4

2 回答 2

3

你这样说:

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
于 2013-06-07T17:22:22.233 回答
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
于 2013-06-07T17:22:36.537 回答