多个查询同一表但列不同

多个查询同一表但列不同

我试图从两个不同的表中得到更多的汇总结果的列

SET @start_res = 20150301;SET @finish_res= 20150501;SET @finish_check= 20150801;SET @start_check= 20150301;SET @daily_hos= 3;SELECT* from
   ( SELECT COUNT(DAY_IN) AS arr FROM t_hospital WHERE DAY_IN between  @start_check and @finish_check and RES_DATE between @start_res and 
   @finish_res  and ID_daily_hos =@daily_hos group by DAY_IN  )e,
     (SELECT COUNT(PAT_STATUS) AS ONG1 FROM t_hospital WHERE PAT_STATUS  like '%ong%' and  DAY_IN between @start_check and @finish_check 
     and RES_DATE between @start_res and @finish_res  and ID_daily_hos =@daily_hos group by DAY_IN ) a,
        (SELECT COUNT(PAT_STATUS) AS RTED FROM t_hospital WHERE PAT_STATUS  like '%rtde%'and  DAY_IN between  @start_check and @finish
        _check and RES_DATE between @start_res and @finish_res  and ID_daily_hos =@daily_hos group by DAY_IN  )b,
           (SELECT COUNT(PAT_STATUS) AS POLI FROM t_hospital WHERE PAT_STATUS  like '%pol%'and DAY_IN between @start_check and @finish_
           check and RES_DATE between @start_res and @finish_res  and ID_daily_hos =@daily_hos group by DAY_IN   )c,
              (SELECT COUNT(PAT_STATUS) AS para FROM t_hospital WHERE PAT_STATUS  like '%para%' and  DAY_IN between @start_check and
               @finish_check and RES_DATE between @start_res and @finish_res  and ID_daily_hos =@daily_hos group by DAY_IN  )d

当然,它不能工作,只有第一个显示的列(Arr)工作,而其他列显示一个错误的输出。

我哪里错了?


慕雪6442864
浏览 547回答 3
3回答

蝴蝶刀刀

这是一个非常常见的模式:SELECT DAY_IN, COUNT(*) AS arr,         SUM(IF(PAT_STATUS  like '%ong%', 1, 0)) AS ONG1,         SUM(IF(PAT_STATUS  like '%rtde%', 1, 0)) AS RTED,         SUM(IF(PAT_STATUS  like '%pol%', 1, 0)) AS POL1,         SUM(IF(PAT_STATUS  like '%para%', 1, 0)) AS paraFROM t_hospital  WHERE DAY_IN between @start_check and @finish_check      and RES_DATE between @start_res and @finish_res       and ID_daily_hos =@daily_hosGROUP BY DAY_IN

交互式爱情

试试这个:-SET @start_res = 20150301;SET @finish_res= 20150501;SET @finish_check= 20150801;SET @start_check= 20150301;SET @daily_hos= 3;SELECT (SELECT COUNT(DAY_IN) AS arr FROM t_hospital WHERE DAY_IN between  @start_check and @finish_check and RES_DATE between @start_res and @finish_res and ID_daily_hos =@daily_hos) e,(SELECT COUNT(PAT_STATUS) AS ONG1 FROM t_hospital WHERE PAT_STATUS  like '%ong%' and  DAY_IN between @start_check and @finish_check and RES_DATE between @start_res and @finish_res  and ID_daily_hos =@daily_hos) a,(SELECT COUNT(PAT_STATUS) AS RTED FROM t_hospital WHERE PAT_STATUS  like '%rtde%' and  DAY_IN between  @start_check and @finish_check and RES_DATE between @start_res and @finish_res  and ID_daily_hos =@daily_hos)b,(SELECT COUNT(PAT_STATUS) AS POLI FROM t_hospital WHERE PAT_STATUS  like '%pol%' and DAY_IN between @start_check and @finish_check and RES_DATE between @start_res and @finish_res  and ID_daily_hos =@daily_hos) c,(SELECT COUNT(PAT_STATUS) AS para FROM t_hospital WHERE PAT_STATUS  like '%para%' and  DAY_IN between @start_check and @finish_check and RES_DATE between @start_res and @finish_res  and ID_daily_hos =@daily_hos) d您的问题提到了连接两个表,但似乎只有t_hospital有疑问。您可能需要使用有关另一个表的信息更新您的问题。
打开App,查看更多内容
随时随地看视频慕课网APP