none
請教這段sql語法是錯在哪裡? RRS feed

  • 問題

  • 怎麼欄位的它牌會消失了?
    語法哪裡錯了?
     select g.維修人員,g.接單數,g.保固內,g.保固外,h.它牌 from (
     select e.維修人員,e.接單數,e.保固內,f.保固外 from (
     select c. 維修人員,c.接單數,d.保固內 from (
     select a.維修人員 維修人員,b.接單數 from (
        
    	select distinct wo.MECHANIC_NAME 維修人員 from WO
        group by MECHANIC_NAME
    
        )a Left join (
         select distinct wo.MECHANIC_NAME 維修人員,count(*) 接單數 from  WO
         group by wo.MECHANIC_NAME
        )b ON (A.維修人員 = b.維修人員)
    
    --需確認 ASSET.HAVEWARRANTY=1 (保內還是外)
        )c left join (
         select distinct wo.MECHANIC_NAME 維修人員,count(ASSET.HAVEWARRANTY) 保固內 from ASSET
         join wo on (wo.ASSET_ID = ASSET.ASSET_ID)
         where ASSET.HAVEWARRANTY = 1
         group by wo.MECHANIC_NAME
        )d on (c.維修人員 = d.維修人員)
    
        )e left join (
         select distinct wo.MECHANIC_NAME 維修人員,count(ASSET.HAVEWARRANTY) 保固外 from ASSET
         join wo on (wo.ASSET_ID = ASSET.ASSET_ID)
         where ASSET.HAVEWARRANTY = 0
         group by wo.MECHANIC_NAME
        )f on (e.維修人員 = f.維修人員)
    
    	)g left join( --它牌
    		 select wo.MECHANIC_NAME 維修人員,count(ASSET.BRAND_NAME) 它牌 from ASSET
             join wo on (wo.ASSET_ID = ASSET.ASSET_ID) 
             where (ASSET.BRAND_NAME NOT IN ('brother', 'NCC'))
    		 group by wo.MECHANIC_NAME
    	)h on (g.維修人員 = h.維修人員)


    這裡欄位它牌
    下面再加一段sql指令它牌欄位就不見了

    select i.維修人員,i.接單數,i.保固內,i.保固外,j.已完修數 from (
     select g.維修人員,g.接單數,g.保固內,g.保固外,h.它牌 from (
     select e.維修人員,e.接單數,e.保固內,f.保固外 from (
     select c. 維修人員,c.接單數,d.保固內 from (
     select a.維修人員 維修人員,b.接單數 from (
        
    	select distinct wo.MECHANIC_NAME 維修人員 from WO
        group by MECHANIC_NAME
    
        )a Left join (
         select distinct wo.MECHANIC_NAME 維修人員,count(*) 接單數 from  WO
         group by wo.MECHANIC_NAME
        )b ON (A.維修人員 = b.維修人員)
    
    --需確認 ASSET.HAVEWARRANTY=1 (保內還是外)
        )c left join (
         select distinct wo.MECHANIC_NAME 維修人員,count(ASSET.HAVEWARRANTY) 保固內 from ASSET
         join wo on (wo.ASSET_ID = ASSET.ASSET_ID)
         where ASSET.HAVEWARRANTY = 1
         group by wo.MECHANIC_NAME
        )d on (c.維修人員 = d.維修人員)
    
        )e left join (
         select distinct wo.MECHANIC_NAME 維修人員,count(ASSET.HAVEWARRANTY) 保固外 from ASSET
         join wo on (wo.ASSET_ID = ASSET.ASSET_ID)
         where ASSET.HAVEWARRANTY = 0
         group by wo.MECHANIC_NAME
        )f on (e.維修人員 = f.維修人員)
    
    	)g left join( --它牌
    		 select wo.MECHANIC_NAME 維修人員,count(ASSET.BRAND_NAME) 它牌 from ASSET
             join wo on (wo.ASSET_ID = ASSET.ASSET_ID) 
             where (ASSET.BRAND_NAME NOT IN ('brother', 'NCC'))
    		 group by wo.MECHANIC_NAME
    	)h on (g.維修人員 = h.維修人員)
    	 
    	)i left join ( 
           select wo.MECHANIC_NAME 維修人員,count(wo.STATE_NAME) 已完修數 from WO
    	   where wo.STATE_NAME  like N'%已完修%'
           group by MECHANIC_NAME
        )j on (i.維修人員 = j.維修人員)


    麻煩各位大神語法錯在哪?

    2022年6月15日 上午 07:22

所有回覆

  • select i.維修人員,i.接單數,i.保固內,i.保固外,j.已完修數 ,??? from ( select g.維修人員,g.接單數,g.保固內,g.保固外,h.它牌 from (

    是不是最後SELECT缺了它牌?


    • 已編輯 2022年7月19日 上午 01:18
    2022年7月19日 上午 01:15