2016-04-16 6 views
0

Der Versuch, Monatswerte basieren auf Definition hinzufügen, auf dem Monat gehört zu welchem ​​Viertel (so kann Definition Update sein):up Monatswerte basieren auf Definition auf Quartal

enter image description here

Ich versuche, verwendet innere Verknüpfung zu erreichen, aber fehlgeschlagen:

SELECT qr, sum(price) 
INTO Table3 
FROM Table1 
INNER JOIN Table2 
on Table1.mth = Table2.mth 
INNER JOIN Table3 
on Table2.qr = Table3.qr 

auch nicht sicher, ob ich bin, wenn eine zusätzliche Spalte in Tabelle 1 (qr), wird die Dinge einfacher machen?

+0

Sie brauchen 'GROUP BY qr' –

Antwort

1

Wenn Ihr table3 haben bereits diese vier Reihen mit zu beginnen und Sie wollen einfach nur die Preise in table3 zu aktualisieren, den Preis eines jeden Quartals reflektieren können Sie diese Abfrage verwenden:

UPDATE Table3 T3, 
    (SELECT T2.qr,sum(T1.price) as quarterly_price 
    FROM Table1 T1 
    INNER JOIN Table2 T2 ON T1.mth = T2.mth 
    GROUP BY T2.qr) AS Result 
SET T3.price = Result.quarterly_price 
WHERE T3.qr = Result.qr; 

sqlfiddle to Update Table3

wenn table3 nicht diese vier Zeilen hat und Sie wollen, dass sie einzufügen, benutzen Sie diese Abfrage:

INSERT INTO Table3 
    SELECT T2.qr,sum(T1.price) as quarterly_price 
    FROM Table1 T1 
    INNER JOIN Table2 T2 ON T1.mth = T2.mth 
    GROUP BY T2.qr; 

sqlfiddle to Insert into Table3

EDIT: Tin ich ein wenig aus dem Code ändern und das funktioniert in Access Abfrage fein:

SELECT Table2.qr,sum(Table1.price) as Price_new 
INTO Table3 
FROM Table1 
INNER JOIN Table2 ON Table1.mth = Table2.mth 
GROUP BY Table2.qr; 
+0

Dank Tin hinzuzufügen, habe ich versucht, den Code mit der laufenden Sqlfiddle-Link und funktioniert, aber es funktioniert nicht mit, wenn ich die Abfrage in Access versuche, ist es etwas ganz anderes? – Alex

+0

Ich weiß nicht, welche Art von SQL-Zugriff verwendet ... vielleicht gibt es kleinere Unterschiede in der Syntax –

+0

groß, Sie haben es funktioniert –

Verwandte Themen