Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Aggregatfunktion SUM und Verknüpfung mittels SQL

Frage Entwicklung Datenbanken

Mitglied: etnobommel1989

etnobommel1989 (Level 1) - Jetzt verbinden

04.03.2010, aktualisiert 15:04 Uhr, 4182 Aufrufe, 1 Kommentar

Ausgangssituation: 3 Tabellen: Kostenstelle, Januar, Februar in den Tabellen Januar und Februar sind einzelne Rechnungsbeträge mit zugehöriger Kostenstelle. In der Tabelle Kostenstelle sind alle möglichen Kostenstellen aufgelistet.

Nun will ich die einezelnen Rechnungsbeträge gruppieren nach der Kostenstelle und von den einzelnen Gruppen die Summe bilden, habs auch schon versucht geht abbba nich.


Vielen Dank für Antworten


Mein aktueller Quelltext wo utopische Werte heraus kommen!!!

SELECT Kostenstelle.Kostenstelle, Sum(Januar_2010.Anteil_Euro) AS [Summe von Anteil_Euro], Sum(Februar_2010.Anteil_Euro) AS [Summe von Anteil_Euro1], Sum(Maerz_2010.Anteil_Euro) AS [Summe von Anteil_Euro2]
FROM ((Kostenstelle INNER JOIN Januar_2010 ON Kostenstelle.Kostenstelle = Januar_2010.Kostenstelle) INNER JOIN Februar_2010 ON Kostenstelle.Kostenstelle = Februar_2010.Kostenstelle) INNER JOIN Maerz_2010 ON Kostenstelle.Kostenstelle = Maerz_2010.Kostenstelle
GROUP BY Kostenstelle.Kostenstelle;
Mitglied: 741852
05.03.2010 um 07:52 Uhr
Hallo,
ich denke mal die Aufteilung der Beträge auf einzelne Tabellen je Monat ist etwas unglücklich. Besser wäre es, wenn sich alle Rechnungsbeträge in einer Tabelle befinden würden mit einem Feld für das Datum bzw. das Monat, dann wäre es einfacher zu lösen. Aber wahrscheinlich kannst da nichts dran ändern.
Ich versteh auch eins noch nicht genau: wenn in Kostenstelle.Kostenstelle das gleiche wie in den Detailtabellen drinsteht, dann könnte man sich den Join ja eigentlich sparen.
Welches DBS verwendest du denn?

Ich würds mal so in der Art versuchen (Syntax musst evtl. anpassen ist, je nach DBS):

Die Tabellen einzeln abfragen und mit "UNION" verknüpfen (werden dadurch aneinandergereiht).So bekommst du die Kostenstellen je Monat gelistet. Für weitere Auswertungen das Ergebnis in eine Temporäre Tabelle schreiben, danach die Temporäre Tabelle nach belieben auswerten.

SELECT Kostenstelle.Kostenstelle,"Januar" as Monat, Sum(Januar_2010.Anteil_Euro) AS [Summe von Anteil_Euro]
WHERE Januar_2010.Kostenstelle=Kostenstelle.Kostenstelle
GROUP BY 1,2
UNION
SELECT Kostenstelle.Kostenstelle,"Februar"as Monat, Sum(Februar_2010.Anteil_Euro) AS [Summe von Anteil_Euro]
WHERE Februar_2010.Kostenstelle=Kostenstelle.Kostenstelle
GROUP BY 1,2
UNION
........ ;
Auch würde ich mal überprüfen, ob die Kostenstellen in den Monatstabellen mit den Kostenstellen in der Kostenstellentabelle übereinstimmen, oder ob es hier Inkonsistenzen gibt.
In etwa so (evtl. Syntax an DBS anpassen): SELECT Januar_2010.Kostenstelle FROM Januar_2010 WHERE Januar_2010.Kostenstelle not in (SELECT Kostenstelle.Kostenstelle FROM Kostenstelle) OR Januar_2010.Kostenstelle is null;

Viel Glück
Bitte warten ..
Ähnliche Inhalte
Datenbanken
SUM oder AVG in SQL Abfrage dauert viel zu lange warum? (5)

Frage von samet22 zum Thema Datenbanken ...

Datenbanken
SQL Auswertung 2 Joins und SUM

Frage von c64b311ee9 zum Thema Datenbanken ...

Datenbanken
SQL Server 2008 R2 iso (3)

Frage von Doktore77 zum Thema Datenbanken ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(11)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (26)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Brauche Hilfe: Mit (schnellem) WLAN Strecke überbrücken (23)

Frage von pierrehansen zum Thema LAN, WAN, Wireless ...

Basic
Programmierung von Windows Programmen (10)

Frage von Ghost108 zum Thema Basic ...