Jaqueson Geschrieben 11. Oktober 2006 Teilen Geschrieben 11. Oktober 2006 Hi, ich habe folgende Situation: Oracle10g mit folgenden Tabellen: Country besteht aus: NAME (Bsp: Deutschland) CODE (Bsp: D) CAPITAL (Bsp: Berlin) PROVINCE (Bsp: Berlin) AREA (Bsp: 356910) POPULATION (Bsp: 80000000) Borders besteht aus: COUNTRY1 (Bsp: D) COUNTRY2 (Bsp: A) LENGTH (Bsp: 150) Länge der Grenzen Ich soll nun ein SQL Statement schreiben, dass zu jedem Land die Summe der Fläche seiner Nachbarländer berechnet. Ich bekomme es einfach nicht hin. Vielleicht kann mir ja jemand von Euch helfen. Danke und Gruß Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
escito83 Geschrieben 12. Oktober 2006 Teilen Geschrieben 12. Oktober 2006 wenn ich es richtig verstanden habe, sieht das ganze wie folgt aus: select c1.name, sum(c2.area) from country c1, country c2, borders b1 where b1.country1=c1.code and b1.country2=c2.code group by c1.name Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaqueson Geschrieben 13. Oktober 2006 Autor Teilen Geschrieben 13. Oktober 2006 Die Anweisung passt aber nur für eine Seite... Ich hab es jetzt folgendermaßen gemacht: Ich habe eine View erstellt und dann habe ich eine SQL Anweisung auf die View gemacht. CREATE VIEW flaechen AS ( SELECT a.Name, SUM((SELECT area FROM mondial.country WHERE code = b.country2)) AS AREA FROM mondial.country a JOIN mondial.borders b ON b.Country1 = a.Code GROUP BY a.Name UNION ALL SELECT a.Name, SUM((SELECT area FROM mondial.country WHERE code = b.country1)) AS AREA FROM mondial.country a JOIN mondial.borders b ON b.Country2 = a.Code GROUP BY a.Name ); SELECT name, SUM(area) AS AREA FROM flaechen GROUP BY name ORDER BY name ASC; Dann kommt das richtige Ergebniss raus... Ist es auch möglich alles in einer Anweisung zu schreiben? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.