Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Vorgehen für aktiv und inaktiv (https://www.delphipraxis.net/190664-vorgehen-fuer-aktiv-und-inaktiv.html)

RWarnecke 24. Okt 2016 08:09

Datenbank: MSACCESS • Version: 2013 • Zugriff über: nicht festgelegt

Vorgehen für aktiv und inaktiv
 
Hallo zusammen,

ich habe folgendes Problem. Ich habe eine Tabelle wie folgt :

Spalte 1| Aktiviert | Deaktiviert
Wert 1 | 1 | 0
Wert 2 | 1 | 0
Wert 3 | 1 | 0
Wert 4 | 1 | 0
Wert 5 | 1 | 0
Wert 6 | 1 | 0
Wert 1 | 0 | 1

Als Ergebnis aus der SELECT-Anweisung sollen nur die Zeilen "Wert 2" - "Wert 6" angezeigt werden. Wie kann ich das machen ?

DeddyH 24. Okt 2016 08:11

AW: Vorgehen für aktiv und inaktiv
 
Und wieso gerade die? Erklär doch bitte einmal die Kriterien.

Der schöne Günther 24. Okt 2016 08:13

AW: Vorgehen für aktiv und inaktiv
 
Es gibt zwar wohl einmal "Wert 1 | 1 | 0", aber auch "Wert 1 | 0 | 1". Da Wert 1 wohl gleichzeitig aktiviert, aber auch deaktiviert ist sieht man das "deaktiviert" wohl als "stärker". Wäre meine Idee. Hoffentlich nicht weil es "weiter unten" steht.

Wenn dann hätte ich doch einfach alles selected was "aktiviert = 1" hat, aber nicht in der Menge steckt die "deaktiviert = 1" hat.

RWarnecke 24. Okt 2016 08:20

AW: Vorgehen für aktiv und inaktiv
 
Ich will die aktivierten und die deaktivierten Positionen haben. Ist ein Wert doppelt vorhanden, einmal mit Aktiviert = 1 und Deaktiviert = 0 und Aktiviert = 0 und Deaktiviert = 1, dann soll der Wert über das SELECT nicht angezeigt werden.

DeddyH 24. Okt 2016 08:23

AW: Vorgehen für aktiv und inaktiv
 
Also so etwas (ungetestet)?
SQL-Code:
SELECT
  Spalte,
  Aktiviert,
  Deaktiviert
FROM
  Tabelle T1
WHERE
  Aktiviert = 1 
  AND Deaktiviert = 0
  AND NOT EXISTS(
    SELECT
      *
    FROM
      Tabelle
    WHERE
      Spalte = T1.Spalte
      AND (Aktiviert = 0 OR Deaktiviert = 1)
  )
[edit] Alternativ (wieder ungetestet):
SQL-Code:
SELECT
  T1.Spalte,
  T1.Aktiviert,
  T1.Deaktiviert,
  T2.Spalte
FROM
  Tabelle T1
  LEFT JOIN
    Tabelle T2 ON T2.Spalte = T1.Spalte AND (T2.Aktiviert = 0 OR T2.Deaktiviert = 1)
WHERE
  T2.Spalte IS NULL
[/edit]

RWarnecke 24. Okt 2016 09:04

AW: Vorgehen für aktiv und inaktiv
 
Vielen Dank Detlef, genau das habe ich gesucht.

Uwe Raabe 24. Okt 2016 09:20

AW: Vorgehen für aktiv und inaktiv
 
Zitat:

Zitat von RWarnecke (Beitrag 1351822)
Ich will die aktivierten und die deaktivierten Positionen haben. Ist ein Wert doppelt vorhanden, einmal mit Aktiviert = 1 und Deaktiviert = 0 und Aktiviert = 0 und Deaktiviert = 1, dann soll der Wert über das SELECT nicht angezeigt werden.

Etwas out-of-the box und ungetestet:

SQL-Code:
SELECT
  Spalte,
  SUM(Aktiviert),
  SUM(Deaktiviert)
FROM
  Tabelle
GROUP BY Spalte
HAVING (SUM(Aktiviert) - SUM(Deaktiviert)) <> 0


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz