Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mssql查询和其他字段中的一个字段求和_Sql_Sql Server - Fatal编程技术网

mssql查询和其他字段中的一个字段求和

mssql查询和其他字段中的一个字段求和,sql,sql-server,Sql,Sql Server,我需要实现这样的目标: SELECT AttendDetails.Date,AttendDetails.AttendId, NameCode,PhoneNo,Patients. [Next of Kin] as NextOfKin,Company, ConsultFee,LabFee, XraFee as XrayFee, ECGFee, AdmitFee,SUM(PresFee) AS TotalPresFee,MedFee,TheaterFee,ScanFee FROM AttendDeta

我需要实现这样的目标:

SELECT AttendDetails.Date,AttendDetails.AttendId, NameCode,PhoneNo,Patients.
[Next of Kin] as NextOfKin,Company,
ConsultFee,LabFee, XraFee as XrayFee, ECGFee,
AdmitFee,SUM(PresFee) AS TotalPresFee,MedFee,TheaterFee,ScanFee
FROM AttendDetails
LEFT JOIN Patients on AttendDetails.OPDNo = Patients.OPDNo
LEFT JOIN [Company list] on [Company list].AcNum = AttendDetails.GLOffset
LEFT JOIN ConsultDetails on  AttendDetails.AttendId = 
ConsultDetails.AttendId 
LEFT JOIN LaboratoryDetails on AttendDetails.AttendId = 
LaboratoryDetails.AttendId
LEFT JOIN XrayDetails on AttendDetails.AttendId = XrayDetails.AttendId
LEFT JOIN ECGDetails on AttendDetails.AttendId = ECGDetails.AttendId
LEFT JOIN AdmitDetails on AttendDetails.AttendId = AdmitDetails.AttendId
LEFT JOIN PrescripDetails on AttendDetails.AttendId = 
PrescripDetails.AttendId
LEFT JOIN Medicals on AttendDetails.AttendId = Medicals.AttendId
LEFT JOIN TheaterDetails on AttendDetails.AttendId = TheaterDetails.AttendId
LEFT JOIN ScanDetails on AttendDetails.AttendId = ScanDetails.AttendId
WHERE AttendDetails.GLOffset = $P{company}  
AND AttendDetails.Date BETWEEN $P{startDate}  AND $P{endDate}
GROUP BY <something>
选择AttendedDetails.Date、AttendedDetails.AttendedId、姓名代码、电话号码、患者。
[近亲]作为公司的近亲,
顾问费、实验室费、XraFee作为XraFee、ECGFee,
许可费,总计(预付费)预付费,医疗费,剧院费,扫描费
来自出席者
左连接就诊患者。OPDNo=患者。OPDNo
在[Company list]上左键加入[Company list]。AcNum=AttentDetails.GLOffset
AttentDetails上的LEFT JOIN ConsultDetails.AttentDid=
咨询详情
AttendDetails上的LEFT JOIN LaboratoryDetails.AttendDid=
实验室细节
在AttendDetails.AttendDid=XrayDetails.AttendDid上左连接XrayDetails
在AttendDetails.AttendDid=ECGDetails.AttendDid上左键连接ECGDetails
AttendDetails.AttendDid=AdmitDetails.AttendDid上的左连接AdmitDetails
AttendDetails上的LEFT JOIN PrescriptDetails.AttendDid=
开处方的细节
在AttentDetails.AttendId=Medicals.AttendId上左键连接Medicals
在AttentDetails.AttendId=TheaterDetails.AttendId上左键加入TheaterDetails
在AttendDetails.AttendDid=ScandDetails.AttendDid上左连接ScandDetails
其中AttentDetails.GLOffset=$P{company}
日期介于$P{startDate}和$P{endDate}之间
分组

其中,结果中的一个字段是求和值。但我似乎没有把小组按条款安排好。还是我做错了???

在聚合查询过程中,所有字段都需要是GROUP BY子句的一部分或受聚合函数的影响。在这种情况下,由于您只聚合一列,因此您的分组依据必须是所有剩余字段:

GROUP BY
    AttendDetails.Date,
    AttendDetails.AttendId, 
    NameCode,
    PhoneNo,
    Patients.[Next of Kin],
    Company,
    ConsultFee,
    LabFee, 
    XraFee, 
    ECGFee,
    AdmitFee,
    MedFee,
    TheaterFee,
    ScanFee

你的错误是什么?是否按所有选定字段进行分组?