求大神帮忙写一个sql查询语句,弄了俩小时没弄出来

2025-06-20 18:38:10
推荐回答(1个)
回答1:

你看下是不是这个意思

但是我不知道你EPARCHY_CODE的全集是什么,应该就是你decode里那些吧,你看看这样执行一下,数据少不少

select a.EPARCHY_CODE,a.EPARCHY_NAME,a.loginCount,b.p_valid_order,b.p_money,c.terminalNum
from
(--本周登陆情况 
SELECT COUNT(1) loginCount, 
FF.EPARCHY_CODE,
DECODE(FF.EPARCHY_CODE,'0027','武汉','0728','江汉','0712','孝感') AS EPARCHY_NAME  
FROM TL_M_STAFFLOG DD, TD_M_STAFF FF 
WHERE DD.STAFF_ID = FF.STAFF_ID   
AND FLOOR(TO_NUMBER(SYSDATE - TO_DATE(TO_CHAR(IN_TIME, 'yyyy-mm-dd'),'yyyy-mm-dd'))) <= 7 
AND   FF.EPARCHY_CODE IN('0027','0728','0712')
GROUP BY FF.EPARCHY_CODE) a,
(--本周订单数 金额
SELECT COUNT(1) p_valid_order,SUM(order_money) p_money,
ss.Eparchy_Code,
DECODE(ss.Eparchy_Code,'0027','武汉','0728','江汉','孝感') AS EPARCHY_NAME   
FROM tf_f_order SS  
WHERE SS.ORDER_STATUS <> 'CANCEL'  AND FLOOR(TO_NUMBER(SYSDATE -TO_DATE(TO_CHAR(ORDER_TIME, 'yyyy-mm-dd'),'yyyy-mm-dd'))) <= 7    
AND SS.EPARCHY_CODE IN ('0027', '0728', '0712')    
GROUP BY ss.Eparchy_Code) b,
(--本周产生终端款数    
SELECT  COUNT(1) terminalNum,
Terminal_Model,
Eparchy_Code 
FROM tf_f_order SS 
WHERE SS.ORDER_STATUS <> 'CANCEL' AND FLOOR(TO_NUMBER(SYSDATE -TO_DATE(TO_CHAR(ORDER_TIME, 'yyyy-mm-dd'),'yyyy-mm-dd hh24:mi:SS'))) <=7
AND SS.EPARCHY_CODE IN ('0027', '0728', '0712')
GROUP BY ss.Terminal_Model,ss.Eparchy_Code) c 
where a.EPARCHY_CODE=b.EPARCHY_CODE
and b.EPARCHY_CODE=c.EPARCHY_CODE