2012-06-08 54 views
-2

現在,這是一個子查詢一個簡單的插入查詢,它的工作完美:乘組由,誦讀困難

INSERT INTO CSolutions..Report2 

SELECT Nov.Chain, CG.Grouping, reg.code as regcode,reg.pname,reg.fname,reg.sname, SUM(NS.Currency) as sumeur , sum(ns2.kpl) as sumkpl,0,0,0,0 


FROM CSolutions..NovSales NS,CSolutions..NSaleskpl NS2, CSolutions..NovCGroup CG, sales..reg_eng reg, 
     (SELECT DISTINCT P.Code, Nov.Chain 
     FROM Register..Pcy P 
      INNER JOIN Register..TCustomer TC ON (P.Code = TC.PCode) 
      INNER JOIN CSolutions..Novies2 Nov ON (TC.Code = Nov.TCode) 
     ) AS Nov 

WHERE NS.SpCode = CG.SpCode and ns.spcode = ns2.spcode AND Ns.PCode = Nov.Code 
and ns.spcode = reg.code 
and ns.pcode = ns2.pcode 

    **and NS.SalesMonth = '201205' 
    and NS2.SalesMonth = '201205'** 


GROUP BY Nov.Chain, CG.Grouping , reg.code,reg.pname,reg.fname,reg.sname 

這是同一個查詢的衍生物,但它不能正常工作:

INSERT INTO CSolutions..Report2 

SELECT Nov.Chain, CG.Grouping, reg.code as regcode,reg.pname,reg.fname,reg.sname, SUM(NS.Currency) as sumeur , sum(ns2.kpl) as sumkpl,0,0,0,0 


FROM CSolutions..NovSales NS,CSolutions..NSaleskpl NS2, CSolutions..NovCGroup CG, sales..reg_eng reg, 
     (SELECT DISTINCT P.Code, Nov.Chain 
     FROM Register..Pcy P 
      INNER JOIN Register..TCustomer TC ON (P.Code = TC.PCode) 
      INNER JOIN CSolutions..Novies2 Nov ON (TC.Code = Nov.TCode) 
     ) AS Nov 

WHERE NS.SpCode = CG.SpCode and ns.spcode = ns2.spcode AND Ns.PCode = Nov.Code 
and ns.spcode = reg.code 
and ns.pcode = ns2.pcode 

    **and NS.SalesMonth between '201201' and '201205' 
    and NS2.SalesMonth between '201201' and '201205'** 


GROUP BY Nov.Chain, CG.Grouping , reg.code,reg.pname,reg.fname,reg.sname 

這會給5次5個月的總金額,

我是一個閱讀障礙,我很難發現錯誤,我希望有人能幫助我? :)

+2

「工作不正常」 - 請更具描述性。 –

+0

這將給5個月的總金額的5倍, –

+0

http://sscce.org/ – Marcin

回答

0

在CSolutions..NovSales和CSolutions..NSaleskpl NS2沒有加入銷售月。在第一個查詢中,這並不重要,因爲您只查看一個銷售月。在第二個查詢中,我假設有多個銷售月,因爲您正在從每個表中選擇一個值範圍。正因爲這樣,銷售月份纔會發生交叉連接。

+0

謝謝!我試圖按salesmonth進行分組,這不是我想要的解決方案..再次感謝 –

+0

您需要添加ns.SalesMonth = ns2.SalesMonth這會使'201201'和'201205'之間的NS2.SalesMonth變爲冗餘,但應該強制更正行爲。 – dandcg