2013-06-07 2 views
0

У меня есть запрос, который я хотел бы добавить в поле Вычисленное значение. Мне нужно добавить прогнозируемые продажи на 2013 год. Расчет будет представлять собой текущее количество месяцев, деленное на общее время продаж в году. 12. У меня есть поле для FiscalMonthNum, которого еще нет в запросе. Может кто-нибудь, пожалуйста, покажите мне, как я могу добавить поле, которое мне нужно?Нужно добавить вычисленное поле с использованием T-SQL

SELECT 
    a.Vendor, 
    vn.ACNAME AS Vendor_Name, 
    a.FiscalYear, 
    a.QtySold, 
    a.ExtCost 
FROM 
    dbo.S2K_VEND vn 
    INNER JOIN 
(SELECT 
    sd.IFPRVN AS Vendor, 
    fc.FiscalYear, 
    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 
WHERE 
    sd.SBTYPE = 'O' 
AND 
    sd.SBINDT > '2011-12-31' 
AND 
    sd.SBCLS NOT IN ('1500') 
GROUP BY 
    sd.IFPRVN, 
    fc.FiscalYear 
)a 
ON vn.ACVEND = a.Vendor 
GROUP BY 
    a.Vendor, 
    vn.ACNAME, 
    a.FiscalYear, 
    a.QtySold, 
    a.ExtCost 
+0

, из которого стол выходит 'FiscalMonthNum'? –

+0

dbo.FiscalCalendar – tsqln00b

ответ

0

Будет ли следующее трюк? Разделение продаж на максимальный месяц, а затем умножение на 12?

SELECT 
    a.Vendor, 
    vn.ACNAME AS Vendor_Name, 
    a.FiscalYear, 
    a.QtySold, 
    a.ExtCost, 
    a.PredictedQtySold, 
    a.PredictedExtCost 
FROM 
    dbo.S2K_VEND vn 
    INNER JOIN 
(SELECT 
    sd.IFPRVN AS Vendor, 
    fc.FiscalYear, 
    12 * (SUM(sd.SBQSHP)/MAX(FiscalMonthNumber)) AS PredictedQtySold, 
    12 * (SUM(sd.SBEPRC)/MAX(FiscalMonthNumber)) AS PredictedExtCost, 
    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 
WHERE 
    sd.SBTYPE = 'O' 
AND 
    sd.SBINDT > '2011-12-31' 
AND 
    sd.SBCLS NOT IN ('1500') 
GROUP BY 
    sd.IFPRVN, 
    fc.FiscalYear 
)a 
ON vn.ACVEND = a.Vendor 
GROUP BY 
    a.Vendor, 
    vn.ACNAME, 
    a.FiscalYear, 
    a.QtySold, 
    a.ExtCost 
; 
+0

Должно быть только 2013. – tsqln00b

+0

Вы имеете в виду что-то вроде: PredictedExtCost = CASE WHEN fc.FiscalYear = '2013/2014' THEN 12 * (SUM (sd.SBEPRC)/MAX (FiscalMonthNumber)) ELSE NULL END –

Смежные вопросы