Следующий код SQL выдает ошибку

    SELECT fp.Physician_Key,
       fp.Month,
       pd.DisplayName,
       hd.ProductName,
       SUM(AmtPaid) AS TotalCost
FROM F_ProgramCost_Fact fp
INNER JOIN D_HEALTHPLANDim hd ON hd.HealthPlan_Key = fp.HealthPlan_Key
INNER JOIN D_PHYSICIANDim pd ON fp.Physician_Key = fp.Physician_Key
INNER JOIN F_MemberPatient_FactLess mpf ON fp.MemberPatientFact_Key = mpf.MemberPatientFact_Key
GROUP BY fp.Physician_Key

Получение этой ошибки «Столбец« F_ProgramCost_Fact.Month »недопустим в списке выбора, поскольку он не содержится ни в агрегатной функции, ни в предложении GROUP BY».

Пожалуйста помоги! Спасибо


person Saba Malik    schedule 18.08.2016    source источник
comment
Поскольку вы SUMming, как вы ожидаете, что механизм SQL будет обрабатывать разные значения для столбца F_ProgramCost_Fact.Month? А как быть с другими столбцами? Вы должны добавить их к GROUP BY, чтобы получить SUM по каждой комбинации других столбцов.   -  person PauloASilva    schedule 18.08.2016


Ответы (1)


вам нужно сгруппировать по всем столбцам:

select fp.Physician_Key,fp.Month,pd.DisplayName,hd.ProductName,SUM(AmtPaid) as TotalCost
From F_ProgramCost_Fact fp
Inner Join D_HEALTHPLANDim hd
ON hd.HealthPlan_Key = fp.HealthPlan_Key
Inner join D_PHYSICIANDim pd
ON fp.Physician_Key = fp.Physician_Key 
Inner Join F_MemberPatient_FactLess mpf ON fp.MemberPatientFact_Key = mpf.MemberPatientFact_Key
Group By fp.Physician_Key,fp.Month,pd.DisplayName,hd.ProductName
person Mustapha Larhrouch    schedule 18.08.2016
comment
Спасибо за помощь! - person Saba Malik; 18.08.2016