Filterkriterien über mehrere Spalten hinweg

spek23

Neuer Benutzer
Beiträge
4
Ich nutze die DB Kexi (sqlite) unter Linux und habe folgendes Problem.
Für ein Objekt werden u. a. die Felder "ort_1, ort_2 ... ort_16" sowie "d.m_1, d.m_2 ... d.m_16" und noch "jahr_1, jahr_2 ... jahr_16" vergeben.
Das variiert dann satzweise.
Wie müsste eine Abfrage für die Tabelle aussehen, die angibt, welche zeitlichen Treffer es für einen zu wählenden Ort gibt einschl. d.m (Tag.Monat) und Jahr?
Nicht zutreffende Felder sollen nicht ausgegeben werden.
Wie es scheint, kann Kexi nicht alle sqlite-Konventionen nutzen.
 
Werbung:
Din Tabellendesign scheint arg kapott zu sein, mit den nummerierten Spalten und der Trennung von Tag, Monat und extra Jahr.

Zeig doch mal paar Datensätze (vielleicht nicht immer alle 16 Spalten, 3 würden ja reichen.)
 
Die Datumsangaben habe ich auf Empfehlung der Entwickler gesplittet, das Jahr als Ganzahl angegeben
 

Anhänge

  • ksnip_20200319-181001.png
    ksnip_20200319-181001.png
    33 KB · Aufrufe: 6
Ja. Ich mit Deinem Bild auch nix.

Code:
test=*# select * from spek23 ;
    ort1    |  dd1  |  j1  |    ort2     |  dd2  
------------+-------+------+-------------+-------
 Brno       | 01.04 | 1942 | Dresden     |
 Grenoble   | 11.01 | 1943 | Couckien    |
 Wieda      |       |      | Wernigerode | 04.07
 Letzlingen | 12.04 | 1945 | Kehnert     |
(4 rows)

test=*# with x as (select ort1, dd1, j1 from spek23 union all select ort2, dd2, NULL from spek23) select * from x;
    ort1     |  dd1  |  j1  
-------------+-------+------
 Brno        | 01.04 | 1942
 Grenoble    | 11.01 | 1943
 Wieda       |       |
 Letzlingen  | 12.04 | 1945
 Dresden     |       |
 Couckien    |       |
 Wernigerode | 04.07 |
 Kehnert     |       |
(8 rows)

test=*# with x as (select ort1 as ort, dd1 as dd, j1 as j from spek23 union all select ort2, dd2, NULL from spek23) select * from x where ort = 'Dresden';
   ort   | dd | j
---------+----+---
 Dresden |    |
(1 row)

test=*#

tl;dr

wäre ich Du, würde ich das entsorgen.
 
@akrestschmer
[/QUOTE=

wäre ich Du, würde ich das entsorgen.[\QUOTE]

Deswegen habe ich viele Stunden im Netz gesucht und probiert um eine eigene und elegantere Lösung zu finden. Vielleicht kannst Du mir einen kleinen Anstoß geben, damit ich besser die Richtung finde.
Danke
 
Werbung:
Das Problem ist Deine Ausgangstabelle. Diese habe ich ja erst einmal transformiert, nur dieser Transformationsschritt ist das Problem. Mit der transformierten Tabelle ist alles easy. Wird es nun klarer?
 
Zurück
Oben