CL370_EAT_ CL370_EAT_TITLE                CL370_PERS CL370_REQ_DA CL370_FOOD1          CL370_FOOD2          CL370_FOOD3         
---------- ------------------------------ ---------- ------------ -------------------- -------------------- -----------------
CL370_SYS_
----------
5122701    早餐                           成人       2005-12-27   肉末蒸水蛋           牛肉炒芹菜                               
27-12月-055122702    中餐                           成人       2005-12-27   生菜                 粉蒸肉               牛肉炒芹菜          
27-12月-055122803    晚餐                           成人       2005-12-28   肉末蒸水蛋               牛肉炒芹菜           粉蒸肉              
27-12月-05
CL370_EAT_ CL370_EAT_TITLE                CL370_PERS CL370_REQ_DA CL370_FOOD1          CL370_FOOD2          CL370_FOOD3         
---------- ------------------------------ ---------- ------------ -------------------- -------------------- -----------------
CL370_SYS_
----------
5122701    早餐                           幼儿       2005-12-27   瘦肉粥               小馒头                                   
27-12月-055122702    中餐                           幼儿       2005-12-27   瘦肉粥               瘦肉鸡蛋汤面         肉末红萝卜蒸水蛋    
27-12月-055122703    晚餐                           幼儿       2005-12-27   瘦肉鸡蛋汤面         小馒头                                   
27-12月-05
CL370_EAT_ CL370_EAT_TITLE                CL370_PERS CL370_REQ_DA CL370_FOOD1          CL370_FOOD2          CL370_FOOD3         
---------- ------------------------------ ---------- ------------ -------------------- -------------------- -----------------
CL370_SYS_
----------
5122901    早餐                           成人       2005-12-29   肉末蒸水蛋           牛肉炒芹菜           生菜                
28-12月-055122902    中餐                           成人       2005-12-29   牛肉炒芹菜           生菜                 粉蒸肉              
28-12月-055122903    晚餐                           成人       2005-12-29   生菜                 粉蒸肉               西洋菜              
28-12月-05我现在是想统计出每种菜在一段时间内出现的次数,菜名是不固定的,可按人员构成(如成人),时间段(27-12月-05到29-12月-05)。
如: 菜名             次数        人员类型       天数 
     牛肉炒芹菜        5             成人         3
     粉蒸肉            4             成人         3
     ......................
  

解决方案 »

  1.   

    如果菜名不多的且固定的话用decode吧?
    SELECT adfasd 菜名,decode('牛肉',1,'菜',1,....) 次数,asdf 人员类型,decode('成人',1,'小儿',1....) from adfasd
      

  2.   

    CL370_FOOD1          CL370_FOOD2          CL370_FOOD3         
    最多让吃3种菜吧。
      

  3.   

    SELECT FOOD,PERS,SUM(CNT) AS CNT,SUM(DAY) AS DAY
    FROM (
    SELECT CL370_FOOD1 AS FOOD,CL370_PERS AS PERS,COUNT(*) AS CNT,COUNT(DISTINCT CL370_REQ_DA) AS DAY
    FROM CL370
    GROUP BY CL370_FOOD1,CL370_PERS
    UNION ALL
    SELECT CL370_FOOD2 AS FOOD,CL370_PERS AS PERS,COUNT(*) AS CNT,COUNT(DISTINCT CL370_REQ_DA) AS DAY
    FROM CL370
    GROUP BY CL370_FOOD2,CL370_PERS
    UNION ALL
    SELECT CL370_FOOD3 AS FOOD,CL370_PERS AS PERS,COUNT(*) AS CNT,COUNT(DISTINCT CL370_REQ_DA) AS DAY
    FROM CL370
    GROUP BY CL370_FOOD3,CL370_PERS
    ) GROUP BY FOOD,PERS;