Zellen mit gleichen Inhalten einer Zeile addieren

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Zellen mit gleichen Inhalten einer Zeile addieren

Re: Zellen mit gleichen Inhalten einer Zeile addieren

von Neuling77 » Fr, 05.09.2008 14:08

Super, vielen Dank für Deine Hilfe, Barlee!

Ich hätte nicht gedacht, dass der Befehl zum Summieren einfach "+" lautet.

Re: Zellen mit gleichen Inhalten einer Zeile addieren

von Barlee » Do, 04.09.2008 23:31

Hallo Neuling77,
(Am Schluss soll aus dem 9-Tupel ein 2-Tupel geworden sein, das - im Beispiel - 2,3 ausgibt.)
Wenn Du die Daten in einzelnen Spalten speichern möchtest, dann käme folgendes Konstrukt in Frage.
Im Beispiel stehen die Bezeichner "eins" bis "neun" für die 9 Tupel.

Code: Alles auswählen

SELECT
(CASE WHEN "eins" = 2 THEN 1 else 0 end) + 
(CASE WHEN "zwei" = 2 THEN 1 else 0 end) ...[hier für Spalte "drei" bis "acht"] ...+
(CASE WHEN "neun" = 2 THEN 1 else 0 end) as Anzahl_Erw,
(CASE WHEN "eins" = 1 THEN 1 else 0 end) + 
(CASE WHEN "zwei" = 1 THEN 1 else 0 end) ...[hier für Spalte "drei" bis "acht"] ...+
(CASE WHEN "neun" = 1 THEN 1 else 0 end) as Anzahl_Kind
FROM "[Deine Tabelle]"
!! SQL direkt ausführen muss aktiviert sein.

Gruß Barlee

Zellen mit gleichen Inhalten einer Zeile addieren

von Neuling77 » Do, 04.09.2008 19:43

Hallo Baseianer!

Bevor ich mich an das im anderen Thread angesprochene und dort bearbeitete Problem heranwage, hätt ich da gern mal noch ein anderes Herausforderüngchen im Zusammenhang meiner im Entstehen begriffenen Datenbank für einen Tafelladen. Wahrscheinlich stehe ich hier wirklich nur auf dem Schlauch, so dass ein ganz knapper Hinweis eines gewieften Base-Anwenders mir unkompliziert die Scheuklappen entfernen kann. Zur Sache:

Pro hilfsbedürftigem Haushalt erstelle ich einen Datensatz, in dem von jedem Mitglied des Haushalts u. a. das Geburtsdatum gespeichert wird. In der Tabelle habe ich Platz für bis zu 9 Personen pro Haushalt vorgesehen. Aus den Geburtsdaten berechne ich über eine Ansicht das jeweilige Alter und schlage die einzelnen Haushaltsmitglieder einer Gruppe zu, nämlich Kind (=1), Erwachsen (=2) oder nicht vorhanden (=0; weil ja nicht jede Familie aus neun Mitgliedern besteht). Im Ergebnis habe ich pro Haushalt eine Tabellenzeile, deren 9-Tupel für eine fünfköpfige Familie mit 2 Erwachsenen und 3 Kindern beispielsweise so aussieht: 2,2,1,1,1,0,0,0,0.

Nun mein Problem: Wie summiere ich diese Zelleninhalte so, dass ich in zwei neuen Spalten je die Erwachsenen und die Kinder zusammenzählen kann. Über CASE WHEN komme ich zwar an die Werte der Zellen und kann diese unterscheiden, aber wie lautet der Befehl, wenn ich für jeden "Treffer" bei Erwachsenen bzw. Kindern den Wert der jeweiligen Spalte um eins erhöhen möchte? (Am Schluss soll aus dem 9-Tupel ein 2-Tupel geworden sein, das - im Beispiel - 2,3 ausgibt.)

Ganz idealer weise würde ich die Ergebnisse dieser Summierung auch schon in der Eingabemaske - als Feedback für den Eingebenden - zurückgeben. Vielleicht ist ja auch das möglich, aber es ist nicht zentral.

Vielen Dank für Eure Mühe und Tipps. Für den anderen Thread werde ich mich bedanken, wenn ich die Vorschläge realisiert habe. (Ich wollte - im Nachhinein betrachtet - Schritt zwei vor dem ersten machen.)

Nach oben