У меня есть запрос следующим образомGroup за месяц и год столбца даты
SELECT
MAX(Reimbursement_EBSUtilization.Id) AS Id,
ProviderReimbursementRequest.Contractor_Id,
Reimbursement_EBSUtilization.ServiceMonth,
fContractor.ContractorName,
Reimbursement_EBSUtilization.SD_Id,
MAX(StandardUnits) AS StandardUnits,
MAX(Rate) AS Rate,
SUM(Reimbursement_EBSUtilization.UnitsDelivered) AS UnitsDelivered,
NULL AS ReduceUnits,
CAST(1 AS bit) AS IsEbs,
Reimbursement_EBSUtilization.BHFormName,
fExpenseType.ExpenseType,
CASE
WHEN Reimbursement_EBSUtilization.BHFormName IS NULL THEN MAX(Rate) * SUM(Reimbursement_EBSUtilization.UnitsDelivered) * ISNULL(MAX(Reimbursement_EBSUtilization.StandardUnits), 0)
ELSE (CASE
WHEN fExpenseType.ExpenseType = 'Payable' THEN SUM(ISNULL(Reimbursement_BHForms.ReimburseAmount, 0)) - SUM(ISNULL(Reimbursement_BHForms.ReducedAmount, 0))
ELSE 0
END) -
(CASE
WHEN fExpenseType.ExpenseType = 'Offset' THEN SUM(ISNULL(Reimbursement_BHForms.ReimburseAmount, 0)) - SUM(ISNULL(Reimbursement_BHForms.ReducedAmount, 0))
ELSE 0
END)
END AS ReimbursementAmount
FROM
ProviderReimbursementRequest
LEFT JOIN
Reimbursement_EBSUtilization ON ProviderReimbursementRequest.Id = Reimbursement_EBSUtilization.PRR_Id
LEFT JOIN
Reimbursement_BHForms ON Reimbursement_EBSUtilization.Id = Reimbursement_BHForms.REU_Id
LEFT JOIN
fExpenseCategory ON Reimbursement_BHForms.EC_Id = fExpenseCategory.ID
LEFT JOIN
fExpenseType ON fExpenseCategory.ExpenseType = fExpenseType.Id
LEFT JOIN
fContractor ON ProviderReimbursementRequest.Contractor_Id = fContractor.Id
WHERE
MRR_Id = @MrrId
AND Reimbursement_EBSUtilization.SD_Id = @ServiceDetailId
GROUP BY
ProviderReimbursementRequest.Contractor_Id,
Reimbursement_EBSUtilization.ServiceMonth,
fContractor.ContractorName,
Reimbursement_EBSUtilization.SD_Id,
Reimbursement_EBSUtilization.BHFormName,
fExpenseType.ExpenseType
Исполняя результат является
Id Contractor_Id ServiceMonth ContractorName SD_Id StandardUnits Rate UnitsDelivered ReduceUnits IsEbs BHFormName ExpenseType ReimbursementAmount
3976 845 2016-05-01 Payments SC1 2867 1.00 10.00 20 NULL 1 NULL NULL 200.00
3966 845 2016-07-31 Payments SC1 2867 1.00 10.00 NULL NULL 1 NULL NULL NULL
3974 846 2016-07-01 Payments SC2 2867 1.00 10.00 100 NULL 1 NULL NULL 1000.00
3970 846 2016-07-31 Payments SC2 2867 1.00 10.00 20 NULL 1 NULL NULL 200.00
3978 847 2016-07-31 Payments SC3 2867 1.00 10.00 30 NULL 1 NULL NULL 300.00
3983 847 2016-08-01 Payments SC3 2867 1.00 10.00 NULL NULL 1 NULL NULL NULL
Если вы следите за колонкой обслуживание месяц для contractor_id = 846
мы можем видеть 2 записи с тем же месяцем. Я хочу, чтобы результат объединял эти столбцы, как один с 2016-07-01, а другой - с 2016-07-31, поскольку оба они принадлежат одному и тому же месяцу и году. Я хочу, чтобы они были объединены.
Может ли кто-нибудь помочь в этом?
Последний столбец должен иметь 1000 + 200 = 1200? – Whencesoever
То же самое с UnitsDelivered? – Whencesoever
Вы группируете мой ServiceMonth, но у вас разные значения в выводе. У вас есть 7/1 и 7/31 для подрядчика 846. Это похоже на то, что, пожалуй, столбец плохо назван, потому что это будет дата службы, а не месяц. Вы хотите группировать (и выводить) первый день месяца. –