2016-09-06 17 views
0

を登録しよう私は、クエリを次のようしている。アクセス/ SQLクエリは、作成されたテーブル

SELECT t1.Material, t1.Amount, t2.amtLast, t3.amtLast 
FROM FAUF t1 
LEFT JOIN 
    (SELECT FAUF.Material AS mat, FAUF.Amount AS amtLast 
    FROM FAUF 
    WHERE (year=2014)) t2 
    ON (t1.Material = t2.mat) 
LEFT JOIN 
    (SELECT FAUF.Material AS mat, FAUF.Amount AS amtLast 
    FROM FAUF 
    WHERE (year=2013)) t3 
    ON (t1.Material = t3.mat) 
WHERE (t1.year=2015); 

MS Accessのは、式(t1.Material = t2.mat)に欠落していることを、私にエラーを与えています。最後のJOINを除外するとクエリが機能しますが、何が欠けていますか?

答えて

0

MS Accessでは、結合に追加のかっこが必要です。これを試してみてください:

SELECT t1.Material, t1.Amount, t2.amtLast, t3.amtLast 
FROM (FAUF t1 LEFT JOIN 
     (SELECT FAUF.Material AS mat, FAUF.Amount AS amtLast 
     FROM FAUF 
     WHERE (year=2014) 
    ) t2 
    ) 
    ON (t1.Material = t2.mat) LEFT JOIN 
    (SELECT FAUF.Material AS mat, FAUF.Amount AS amtLast 
     FROM FAUF 
     WHERE (year=2013) 
    ) t3 
    ON (t1.Material = t3.mat) 
WHERE (t1.year = 2015); 

しかし、あなたはjoin方法よりも簡単である条件付き集約、でこれを行うことができます。

select f.Material, 
     sum(iif(f.year = 2015, amount, 0)) as amt_2015, 
     sum(iif(f.year = 2014, amount, 0)) as amt_2014, 
     sum(iif(f.year = 2013, amount, 0)) as amt_2013 
from fauf f 
group by f.Material; 
+0

あなたの助けをいただき、ありがとうございます。最初の式はまだ私にエラーを与えます。私はあなたが括弧を閉じていないと思っていますが、2番目の式はトリックです。 – Gremmbol

+0

@Gremmbol。 。 。ありがとうございました。それはクローズドパレンが欠けていた。 –

関連する問題