一品梅 16:18:53
Select T_STUDY_REPORT.F_STU_REFER_DOCTOR As 送诊医生,T_STUDY_body as 检查部位,Count(T_STUDY_BASIC.F_STU_GUID) As 检查量,Sum(T_STUDY_STAT.F_STU_FARE) As 费用 From [数据表] Where [日期:T_STUDY_BASIC.F_STU_DATE] Group By T_STUDY_REPORT.F_STU_REFER_DOCTOR,T_STUDY_body  
一品梅 16:21:45
检查部位 举例:头颅/腹部/颈椎 这就算三个部位,我想添加一个字段,计算部位个数的,请不用自定义函数,您能帮我写下吗?呵呵
可口可乐 16:23:55
也就是 每个部分都可能有 多次么?
你弄短一点这个字段名, 然后 举例一些数字 这样好看一点。
一品梅 16:27:39
检查部位是一个字段:T_study_body 这个字段可以有多个部位,也可以有一个部位,如果多个的话,用/隔开,现在就是想统计总共的部位
正确答案:
Select T_STUDY_REPORT.F_STU_REFER_DOCTOR As 送诊医生,T_STUDY_body as 检查部位,sum(len(T_STUDY_body)-len(replace(T_STUDY_body,'/','')) + 1) as 部位数, Count(T_STUDY_BASIC.F_STU_GUID) As 检查量,Sum(T_STUDY_STAT.F_STU_FARE) As 费用  
From [数据表] Where [日期:T_STUDY_BASIC.F_STU_DATE]  
Group By T_STUDY_REPORT.F_STU_REFER_DOCTOR,T_STUDY_body   
--------------------------------------------------------------------------------------------------------
我现在遇到一新问题,就是分隔符不固定,可以设置为,\/;等,根据书写医生喜好。
请问这样语句怎么写啊?
原帖地址:http://topic.csdn.net/u/20120331/16/29d971b0-9da3-4c0e-a72d-3b1f6c9bb329.html

解决方案 »

  1.   

    前提:只能写语句,不能写函数和存储过程。因为我们程序调用的只允许写语句,还是sqlite,这个没问题,语法差不多,剩下的我能翻译。
      

  2.   


    那在你的程序里定义一个接受字符的变量。将这个变量放到你的SQL 里不就可以了。不过这样的话你的拼接SQL 。
      

  3.   

    手动输入会出现输错、漏输等错误。
    ================
    这个你放心,不会漏输的,程序有控制,比如点ctrl键才能多选选项。
      

  4.   

    你能控制他输入的是/ 还是, 还是;。
    那你把所有可能的符号都replace一下
    replace(replace(name,'/',''),';','')一直写下去。
      

  5.   

    这样的东东,最好加一字段,在insert记录之前将医生的原始记录转为你能接受的格式,放于新加的字段中