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, 4192 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 und C-Sharp - Grid und einfache Bearbeitungsmaske (1)

Frage von Archimedes zum Thema Datenbanken ...

Datenbanken
gelöst SQL-Dateien sortieren, kombinieren und filtern (6)

Frage von derapfelsaft zum Thema Datenbanken ...

Datenbanken
SQL restore bringt Fehler (2)

Frage von franksig zum Thema Datenbanken ...

Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(6)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(38)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
POS Hardware und alternativen zu Raid 1? (21)

Frage von Brotkasten zum Thema Festplatten, SSD, Raid ...

Windows 10
gelöst Windows 10 Home "Netzlaufwerk nicht bereit" (19)

Frage von Oggy01 zum Thema Windows 10 ...

Viren und Trojaner
Verschlüsselungstrojaner simulieren (18)

Frage von AlbertMinrich zum Thema Viren und Trojaner ...

Exchange Server
Exchange Postfach leeren - nicht löschen (11)

Frage von AndreasOC zum Thema Exchange Server ...