这是我的查询
SELECT DateName
,SubTotal
,Discount
,TotalAmount
,Investment
,(CASE WHEN Expense.expense IS NULL THEN 0 ELSE Expense.expense END) + (CASE WHEN MonthlyExpense.Expense IS NULL THEN 0 ELSE Monthlyexpense.Expense END) Expense
,Profit - ((CASE WHEN Expense.expense IS NULL THEN 0 ELSE Expense.expense END) + (CASE WHEN MonthlyExpense.Expense IS NULL THEN 0 ELSE Monthlyexpense.Expense END)) AS NetProfit
,TotalAmount - ((CASE WHEN Expense.expense IS NULL THEN 0 ELSE Expense.expense END) + (CASE WHEN MonthlyExpense.Expense IS NULL THEN 0 ELSE Monthlyexpense.Expense END)) AS NetCash
FROM (
SELECT datepart(month, SaleDate) Month
,datename(year, SaleDate) Year
,datename(month, SaleDate) + '-' + datename(year, SaleDate) AS DateName
,SUM(SubTotal) SubTotal
,SUM(Discount) AS Discount
,SUM(TotalAmount) AS TotalAmount
,SUM(Investment) AS Investment
,SUM(Profit) AS Profit
FROM (
SELECT TOP 100 PERCENT NS.SaleID
,SaleDate
,Max(NS.SubTotal) AS SubTotal
,Max(NS.Discount) AS Discount
,Max(NS.TotalAmount) AS TotalAmount
,SUM(NSD.Investment) AS Investment
,SUM(NSD.Profit) - Max(NS.Discount) AS Profit
FROM [Sales] NS
INNER JOIN [SalesDetail] NSD ON NS.SaleID = NSD.SaleID
WHERE NS.SaleDate >= '01-06-2015 08:45:59 PM'
AND NS.SaleDate < '01-06-2015 12:00:00 AM'
GROUP BY NS.SaleID
,SaleDate
ORDER BY DatePart(month, SaleDate)
) T
GROUP BY datename(year, SaleDate)
,datepart(month, SaleDate)
,datename(month, SaleDate) + '-' + datename(year, SaleDate)
) Revenue
LEFT JOIN (
SELECT datepart(month, ExpenseDate) Month
,datename(year, ExpenseDate) Year
,SUM(Amount) AS Expense
FROM DailyExpenses
WHERE ExpenseDate >= '01-06-2015 08:45:59 PM'
AND ExpenseDate < '01-06-2015 12:00:00 AM'
GROUP BY datepart(month, ExpenseDate)
,datename(year, ExpenseDate)
) Expense ON Expense.Month = Revenue.Month
AND Expense.Year = Revenue.Year
LEFT JOIN (
SELECT Month
,[Year]
,SUM(Amount) AS Expense
FROM MonthlyExpenses
WHERE ExpenseDate >= '01-06-2015 08:45:59 PM'
AND ExpenseDate < '01-06-2015 12:00:00 AM'
GROUP BY Month
,[Year]
) MonthlyExpense ON MonthlyExpense.Month = Revenue.Month
AND MonthlyExpense.Year = Revenue.Year
这里月份和年份合并。这是我的输出。不知道在哪里下订单。我想获得按月排序的结果。
January-2015
February-2015
March-2015
----
---
---
February-2018
March-2018
April-2018
刚下订单 Revenue.Month, Revenue.Month
SELECT DateName
,SubTotal
,Discount
,TotalAmount
,Investment
,(CASE WHEN Expense.expense IS NULL THEN 0 ELSE Expense.expense END) + (CASE WHEN MonthlyExpense.Expense IS NULL THEN 0 ELSE Monthlyexpense.Expense END) Expense
,Profit - ((CASE WHEN Expense.expense IS NULL THEN 0 ELSE Expense.expense END) + (CASE WHEN MonthlyExpense.Expense IS NULL THEN 0 ELSE Monthlyexpense.Expense END)) AS NetProfit
,TotalAmount - ((CASE WHEN Expense.expense IS NULL THEN 0 ELSE Expense.expense END) + (CASE WHEN MonthlyExpense.Expense IS NULL THEN 0 ELSE Monthlyexpense.Expense END)) AS NetCash
FROM (
SELECT datepart(month, SaleDate) Month
,datename(year, SaleDate) Year
,datename(month, SaleDate) + '-' + datename(year, SaleDate) AS DateName
,SUM(SubTotal) SubTotal
,SUM(Discount) AS Discount
,SUM(TotalAmount) AS TotalAmount
,SUM(Investment) AS Investment
,SUM(Profit) AS Profit
FROM (
SELECT TOP 100 PERCENT NS.SaleID
,SaleDate
,Max(NS.SubTotal) AS SubTotal
,Max(NS.Discount) AS Discount
,Max(NS.TotalAmount) AS TotalAmount
,SUM(NSD.Investment) AS Investment
,SUM(NSD.Profit) - Max(NS.Discount) AS Profit
FROM [Sales] NS
INNER JOIN [SalesDetail] NSD ON NS.SaleID = NSD.SaleID
WHERE NS.SaleDate >= '01-06-2015 08:45:59 PM'
AND NS.SaleDate < '01-06-2015 12:00:00 AM'
GROUP BY NS.SaleID
,SaleDate
ORDER BY DatePart(month, SaleDate)
) T
GROUP BY datename(year, SaleDate)
,datepart(month, SaleDate)
,datename(month, SaleDate) + '-' + datename(year, SaleDate)
) Revenue
LEFT JOIN (
SELECT datepart(month, ExpenseDate) Month
,datename(year, ExpenseDate) Year
,SUM(Amount) AS Expense
FROM DailyExpenses
WHERE ExpenseDate >= '01-06-2015 08:45:59 PM'
AND ExpenseDate < '01-06-2015 12:00:00 AM'
GROUP BY datepart(month, ExpenseDate)
,datename(year, ExpenseDate)
) Expense ON Expense.Month = Revenue.Month
AND Expense.Year = Revenue.Year
LEFT JOIN (
SELECT Month
,[Year]
,SUM(Amount) AS Expense
FROM MonthlyExpenses
WHERE ExpenseDate >= '01-06-2015 08:45:59 PM'
AND ExpenseDate < '01-06-2015 12:00:00 AM'
GROUP BY Month
,[Year]
) MonthlyExpense ON MonthlyExpense.Month = Revenue.Month
AND MonthlyExpense.Year = Revenue.Year
where ProductCode=SP.ProductCode and PackageCode=SP.PackageCode and FranchiseID=39802),0) > 0
order by Revenue.Month, Revenue.Month
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句