Zeile mit 6 Spalten (J/N) Anzahl Ja einträge anzeigen?
Moderator: Moderatoren
Zeile mit 6 Spalten (J/N) Anzahl Ja einträge anzeigen?
Hallo, ich habe eine Tabelle die wie folgt aussieht.
Wert A | Wert B | Wert C | Wert D | Wert E | Wert F | extra Spalte ? "Anzahl ja"
ja | ja | ja |nein | | ja | 4
usw....
mal ist ein ja mal ein nein und mal nichts eingetragen.
Ist es möglich eine SQL Abfrage zu machen die mir in einer extra Spalte hinter jeder Zeile einfach nur die Anzahl von ja's in der ganzen Zeile anzeigt ?
Wert A | Wert B | Wert C | Wert D | Wert E | Wert F | extra Spalte ? "Anzahl ja"
ja | ja | ja |nein | | ja | 4
usw....
mal ist ein ja mal ein nein und mal nichts eingetragen.
Ist es möglich eine SQL Abfrage zu machen die mir in einer extra Spalte hinter jeder Zeile einfach nur die Anzahl von ja's in der ganzen Zeile anzeigt ?
OpenOffice 3.3 & postgresql-sdbc-driver 0.7.6b
Windows XP Professional SP3 x86
Windows XP Professional SP3 x86
Re: Zeile mit 6 Spalten (J/N) Anzahl Ja einträge anzeigen?
Aloha
Auf die Schnelle:
Ist das eigentlich nur bei mir so, dass sich in einer HSQLDB in einer Abfrage nicht auf "True" überprüfen lässt (OOo 3.11)?
Auf die Schnelle:
Code: Alles auswählen
SELECT *,
(
(CASE WHEN "Wert A" = False THEN 0 ELSE 1 END) +
(CASE WHEN "Wert B" = False THEN 0 ELSE 1 END) +
(CASE WHEN "Wert C" = False THEN 0 ELSE 1 END) +
(CASE WHEN "Wert D" = False THEN 0 ELSE 1 END) +
(CASE WHEN "Wert E" = False THEN 0 ELSE 1 END) +
(CASE WHEN "Wert F" = False THEN 0 ELSE 1 END)
) AS "Anzahl Ja's"
FROM "MeineTabelle"
Ist das eigentlich nur bei mir so, dass sich in einer HSQLDB in einer Abfrage nicht auf "True" überprüfen lässt (OOo 3.11)?

Re: Zeile mit 6 Spalten (J/N) Anzahl Ja einträge anzeigen?
Ich mache das ganze ja mit Base, habe den Befehl mal angepasst, aber er geht nicht.
Ja oder ja oder JA
Und direkt noch eine Frage ist Groß und Kleinschreibung egal ?SELECT * ,
(
(CASE WHEN "Auftrag bestätigt" = 'ja' THEN 1 ELSE 0 END) +
(CASE WHEN "Lieferschein bestätigt" = 'ja' THEN 1 ELSE 0 END) +
(CASE WHEN "Fotos übermittelt" = 'ja' THEN 1 ELSE 0 END) +
(CASE WHEN "Stempellisten übermittelt" = 'ja' THEN 1 ELSE 0 END) +
(CASE WHEN "Eingangsrechnung erhalten" = 'ja' THEN 1 ELSE 0 END) +
(CASE WHEN "Originale erhalten" = 'ja' THEN 1 ELSE 0 END)
) AS "Anzahl Ja's"
FROM "Kontrolle"
Ja oder ja oder JA
OpenOffice 3.3 & postgresql-sdbc-driver 0.7.6b
Windows XP Professional SP3 x86
Windows XP Professional SP3 x86
Re: Zeile mit 6 Spalten (J/N) Anzahl Ja einträge anzeigen?
Ok, ich bin (wie auch immer ich darauf gekommen bin) davon ausgegangen, dass Du in der Tabelle mit dem Datentyp Boolean (ja/nein) arbeitest.
Beim zweiten hinschauen sieht es eher so aus, als würdest Du mit Strings arbeiten.
In diesem Falle ist unbedingt auf die Groß- / Kleinschreibung zu achten.
Zusätzlich noch oben in der Symbolleiste "SQL-Kommando direkt ausführen" aktivieren.
Beim zweiten hinschauen sieht es eher so aus, als würdest Du mit Strings arbeiten.
In diesem Falle ist unbedingt auf die Groß- / Kleinschreibung zu achten.
Code: Alles auswählen
SELECT * ,
(
(CASE WHEN Lower("Auftrag bestätigt") = 'ja' THEN 1 ELSE 0 END) +
(CASE WHEN Lower("Lieferschein bestätigt") = 'ja' THEN 1 ELSE 0 END) +
(CASE WHEN Lower("Fotos übermittelt") = 'ja' THEN 1 ELSE 0 END) +
(CASE WHEN Lower("Stempellisten übermittelt") = 'ja' THEN 1 ELSE 0 END) +
(CASE WHEN Lower("Eingangsrechnung erhalten") = 'ja' THEN 1 ELSE 0 END) +
(CASE WHEN Lower("Originale erhalten") = 'ja' THEN 1 ELSE 0 END)
) AS "Anzahl Ja's"
FROM "Kontrolle"
Re: Zeile mit 6 Spalten (J/N) Anzahl Ja einträge anzeigen?
Oh danke =) Habe es auch auf BOOLEAN geändert, vereinfacht die Sache doch extrem.... Bin halt noch ein Neuling was das angeht.
jetzt habe ich noch eine Frage,
Kann man irgendwie Eine Anzeige machen die aus 3 Spalten eine Ansicht in einer neuen macht ?
Habe eine Tabelle mit
ID | Vorname | Nachname
01 | Max | Mustermann
Möchte jetzt in eine neue Spalte
ID + Vorname + Nachname
01 Max Mustermann
haben... Denn wenn ich es addiere macht er keine Leerstellen dazwischen
jetzt habe ich noch eine Frage,
Kann man irgendwie Eine Anzeige machen die aus 3 Spalten eine Ansicht in einer neuen macht ?
Habe eine Tabelle mit
ID | Vorname | Nachname
01 | Max | Mustermann
Möchte jetzt in eine neue Spalte
ID + Vorname + Nachname
01 Max Mustermann
haben... Denn wenn ich es addiere macht er keine Leerstellen dazwischen
OpenOffice 3.3 & postgresql-sdbc-driver 0.7.6b
Windows XP Professional SP3 x86
Windows XP Professional SP3 x86
Re: Zeile mit 6 Spalten (J/N) Anzahl Ja einträge anzeigen?
Aloha
Das || bewirkt dabei die Stringverknüpfung, das ' ' setzt eine Leerstelle.
Code: Alles auswählen
SELECT
("ID" || ' ' || "Vormane" || ' ' || "Nachname") AS "MeinNeuerSpaltenname"
FROM "MeineTabelle"
Re: Zeile mit 6 Spalten (J/N) Anzahl Ja einträge anzeigen?
Super tausend Dank =)DPunch hat geschrieben:Aloha
Das || bewirkt dabei die Stringverknüpfung, das ' ' setzt eine Leerstelle.Code: Alles auswählen
SELECT ("ID" || ' ' || "Vormane" || ' ' || "Nachname") AS "MeinNeuerSpaltenname" FROM "MeineTabelle"
ein letztes noch, die ID ist in der Tabelle als 01 gespeichert, aber wird bei der abfrage nur als 1 angezeigt
OpenOffice 3.3 & postgresql-sdbc-driver 0.7.6b
Windows XP Professional SP3 x86
Windows XP Professional SP3 x86
Re: Zeile mit 6 Spalten (J/N) Anzahl Ja einträge anzeigen?
Das ist nicht ohne Weiteres machbar.
Ich gehe davon aus, dass das Feld "ID" als Integer mit dem Format "Führende Nullen" in der Tabelle gespeichert ist.
Da bei einer Stringverknüpfung wie Deiner der "echte" Wert (Wert von 01 = 1) des Feldes verwendet wird ohne Rücksicht auf die Formatierung, gehen die führenden Nullen verloren.
Als Workaround würde zwar
funktionieren, allerdings auch nur solange Deine IDs nur zweistellig sind.
Ich gehe davon aus, dass das Feld "ID" als Integer mit dem Format "Führende Nullen" in der Tabelle gespeichert ist.
Da bei einer Stringverknüpfung wie Deiner der "echte" Wert (Wert von 01 = 1) des Feldes verwendet wird ohne Rücksicht auf die Formatierung, gehen die führenden Nullen verloren.
Als Workaround würde zwar
Code: Alles auswählen
SELECT
(Right('00' || "ID",2) || ' ' || "Vorname" || ' ' || "Nachname") AS "MeinNeuerSpaltenname"
FROM "MeineTabelle"