Try to change it this way:
SELECT min(MH.sno) as hatchid,(SH.name+'-'+SH1.name) as hatcheryname, convert(varchar,SD.settingdate,103)as settingdate,
sum(SD.Recievedeggs) as eggsdispatchqty, sum(SD.quantity) as settingqty, convert(varchar,MH.pulloutdate,103) as Pulloutdate, SD.batchno as flockno,
sum(MH.ChicksQnty) as Noofchicks, sum(MH.culls) as culls, cast((round((((MH.ChicksQnty- MH.culls)/SD.quantity)*100),2)) as float) as hatchpercent,
sum(cast(round(((SD.quantity*87)/100),0)as int)) as ActSalablechicks, sum((MH.Chicksqnty- MH.culls))as Salablechicks from K_HM_SetterGetterAllocationDet SD
inner join K_HM_SetterDetails MS on SD.sno=MS.ID
inner join K_HM_HatcherDetails HD on MS.sno=HD.ID
inner join K_HM_MasterHatcherdet MH on HD.Sno=MH.ID
inner join K_HM_GetterSetterDet SH on SD.name=SH.sno
inner join K_HM_GetterSetterDet SH1 on SH1.sno=HD.hatchername where HD.attrited='true'
and MH.pulloutdate is not null and MS.pulloutdate is not null
GROUP BY (SH.name+'-'+SH1.name), convert(varchar,SD.settingdate,103), convert(varchar,MH.pulloutdate,103), SD.batchno,
ORDER BY CONVERT(DATETIME, CONVERT(varchar,SD.settingdate,103)) DESC