Aus 4 macht 1

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: Aus 4 macht 1

Re: Aus 4 macht 1

von Tuete » Di, 11.12.2007 15:14

Hat perfekt geklappt, Danke!

Tuete

Re: Aus 4 macht 1

von Barlee » Fr, 07.12.2007 22:10

Hallo tuete,

ja, ist im Bericht reproduzierbar. Scheint ein Bug zu sein. Evtl. könntest Du hierfür einen Bugreport aufmachen?

Um doch zum erwünschten Ergebnis zu kommen, kannst Du folgendermaßen vorgehen. Die Namen aller 4 Personen werden mittels "CONCAT" zu einer Zeichenkette zusammengezogen. Anschließend fragst Du nach einem Bestandteil dieser Zeichenkette mit dem LIKE Operator ab.

Code: Alles auswählen

SELECT "Notiz" 
FROM "Tab_Personen" 
WHERE 
( concat("Pers1", concat("Pers2",concat( "Pers3", "Pers4"))) like :Name ) 
Im Dialogfenster musst Du dann allerdings nicht nur z.B. tuete eingeben, sondern %tuete%.

Vielleicht eine Alternative.

Schönes Wochenende!
Gruß Barlee

Re: Aus 4 macht 1

von Tuete » Do, 06.12.2007 23:14

Gut, mein Fehler!

Wenn ich die Abfrage starte wird tatsächlich nur einmal nach dem Namen gefragt. Wenn ich aber einen Bericht erstellen lasse, der auf dieser Abfrage beruht, wird 4mal nach dem Namen gefragt :(

Tuete

Re: Aus 4 macht 1

von Barlee » Do, 06.12.2007 19:20

Hallo Tuete,

das von Dir beschriebene Verhalten kann ich nicht nachvollziehen:
Parameter1.jpg
Parameter1.jpg (21.07 KiB) 1390 mal betrachtet
Die Variable wird nur einmal abgefragt (OOo 2.3)

Gruß Barlee

Re: Aus 4 macht 1

von Tuete » Mi, 05.12.2007 21:38

Ich hab 2.3!
Vielleicht hab ich Deinen Code nur falsch im Editor umgesetzt.
Hier mal meins
2.jpg
2.jpg (13.59 KiB) 1431 mal betrachtet
1.jpg
1.jpg (51.18 KiB) 1431 mal betrachtet
In diesm Fall werden werden natürlich alle anderen Felder mit ausgegeben, nicht nur die Notiz.


Tuete

Re: Aus 4 macht 1

von Barlee » Mi, 05.12.2007 20:34

Hi tuete,

welche OOo Version benutzt Du?
Gebe ich diese Abfrage ein, dann wird nur einmal nach dem Parameter von "Name" gefragt. Ist ja auch logisch, da nur ein Parameter definiert wurde ...

Gruß Barlee
Parameter.jpg
Parameter.jpg (8.96 KiB) 1475 mal betrachtet

Re: Aus 4 macht 1

von Tuete » Mi, 05.12.2007 19:56

Supi
Geht auf jeden Fall in die richtige Richtung und funktioniert auch. Leider fragt mich OO dann nach vier Einträgen, d.h. muss ich denn gleichen Namen viermal eintragen damit ich wirklich alle Einträge bekomme.
Ich möchte aber praktischerweise nur einmal den Namen eingeben müssen.

Tuete

Re: Aus 4 macht 1

von Barlee » Mi, 05.12.2007 19:34

Hallo tuete,

am einfachsten ist etwas in dieser Art:

Code: Alles auswählen

select Notiz from [Deine_Tabelle]
where
Pers1=:Name or
Pers2=:Name or
Pers3=:Name or
Pers4=:Name
Du wirst dann nach dem Namen der zu suchenden Person gefragt. Möchtest Du diese Angabe nicht machen, dann ersetze :Name durch den entsprechenden Namen der Person.

Gruß Barlee

Aus 4 macht 1

von Tuete » Mi, 05.12.2007 18:22

Folgendes

Ich habe eine Tabelle mit 4 Feldern, sie sich in meinem Fall auf Personen beziehen. Zusätzlich ein Feld für Notizen.
Sinn der Sache: Im Notizfeld notiere Ich ein Ereignis, an dem bis zu 4 Personen teilnehmen können (die ich für jedes Feld einzeln
per Kombinationsfeld aus etwa 20 Personen auswähle).

Das ganze sieht dann etwa so aus:
|Person1| |Person2| |Person3| |Person4| |Notiz|

Jetzt möchte ich eine Abfrage für einen Bericht starten, die mir alle Ereignisse anzeigt, an der eine bestimmte Person teilgenommem hat,
egal ob sie nun an Position Person1, Person2, Person3 oder Person4 steht. Sprich alle Ereignisse auflisten an denen unter anderem z.B. Thomas
teilgenommen hat, aber keine raussuchen an denen er nicht teilgenommen hat.

Wäre schön, wenn mir jemand bei der Formulierung der Abfrage behilflich sein könnte.



Tuete

Nach oben