2017-06-28 12 views
3

私は、Access SQLクエリを作成してサブ選択でいくつかの値を取得し、一連のデータを合計しようとしていますが、クエリを実行するとデータが重複しています。Access SQLの合計行を複写する

Here'sここで私のクエリ

SELECT 
      tt.TransportType, 
      rp.duns AS Duns, 
      rp.part AS Part, 
      rp.plant AS Plant, 
      rr.Route AS Route, 
      rr.RouteComp, 
      tt.TransLength*tt.TransWidth*tt.TransHeight AS [Capacidade], 
      len(rr.CurrentFrequency) AS [Frequencia], 
      Capacidade*Frequencia AS Cap_Disp, 
      s.Cap_Disp*s.FrequenciaTotal AS Cap_Total, 
      s.FrequenciaTotal, 
      Cap_Disp/Cap_Total AS Rateio, 
    FROM ((((tblRoutesParts rp 
      INNER JOIN tbl20week w ON rp.duns = w.duns 
      AND rp.part = w.prt 
      AND rp.plant = w.plant) 
    INNER JOIN tblRoutesRoutes rr ON rp.Route = rr.Route) 
    INNER JOIN tblTransportTypes tt ON tt.TransportType = rr.TransportType) 
    INNER JOIN (SELECT tt.TransportType,   rp.duns,  rp.part,  rp.plant, 
           sum(len(rr.CurrentFrequency)) as FrequenciaTotal, 
           sum((tt.TransLength*tt.TransWidth*tt.TransHeight)*(len(rr.CurrentFrequency))) AS Cap_Disp 
      from (tblRoutesParts rp 
        INNER JOIN tblRoutesRoutes rr ON rp.Route = rr.Route) 
        INNER JOIN tblTransportTypes tt ON tt.TransportType = rr.TransportType 
      GROUP BY tt.TransportType, 
        rp.duns, 
        rp.part, 
        rp.plant) s ON s.duns= rp.duns 
    AND s.part = rp.part 
    AND s.plant = rp.plant) 


    WHERE left(rp.Route, 1) <> 'L' 
    and rp.duns = '903323939' 
    and rp.part = '24584938' 
    and rp.plant = 'BE' 
    and rr.Route = 'FRW.A0001' 

とは出力です:

enter image description here

あなたはデータのみサムフィールドで重複している見るように!

誰でも手伝ってもらえますか?

答えて

2

あなたの 's'に参加してみてください。s.TransportType = tt.TransportType。内部結合のときに複数の行が取得されている可能性があります。

SELECT 
     tt.TransportType, 
     rp.duns AS Duns, 
     rp.part AS Part, 
     rp.plant AS Plant, 
     rr.Route AS Route, 
     rr.RouteComp, 
     tt.TransLength*tt.TransWidth*tt.TransHeight AS [Capacidade], 
     len(rr.CurrentFrequency) AS [Frequencia], 
     Capacidade*Frequencia AS Cap_Disp, 
     s.Cap_Disp*s.FrequenciaTotal AS Cap_Total, 
     s.FrequenciaTotal, 
     Cap_Disp/Cap_Total AS Rateio, 
FROM ((((tblRoutesParts rp 
     INNER JOIN tbl20week w ON rp.duns = w.duns 
     AND rp.part = w.prt 
INNER JOIN tblRoutesRoutes rr ON rp.Route = rr.Route) 
INNER JOIN tblTransportTypes tt ON tt.TransportType = rr.TransportType) 
INNER JOIN (SELECT tt.TransportType,   rp.duns,  rp.part,  rp.plant, 
          sum(len(rr.CurrentFrequency)) as FrequenciaTotal, 
          sum((tt.TransLength*tt.TransWidth*tt.TransHeight)*(len(rr.CurrentFrequency))) AS Cap_Disp 
     from (tblRoutesParts rp 
       INNER JOIN tblRoutesRoutes rr ON rp.Route = rr.Route) 
       INNER JOIN tblTransportTypes tt ON tt.TransportType = rr.TransportType 
     GROUP BY tt.TransportType, 
       rp.duns, 
       rp.part, 
       rp.plant) s ON s.duns= rp.duns 
AND s.part = rp.part 
AND s.plant = rp.plant 
AND s.TransportType = tt.TransportType) 


WHERE left(rp.Route, 1) <> 'L' 
and rp.duns = '903323939' 
and rp.part = '24584938' 
and rp.plant = 'BE' 
and rr.Route = 'FRW.A0001' 
+0

ヘルプありがとうございました!!!!!!あなたは素晴らしいです! –

+0

よろしくお願いします! – justiceorjustus

関連する問題