AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Access SQL Nur Felder anzeigen wo Value >0
Thema durchsuchen
Ansicht
Themen-Optionen

Access SQL Nur Felder anzeigen wo Value >0

Ein Thema von HCB · begonnen am 18. Mai 2024 · letzter Beitrag vom 18. Mai 2024
Antwort Antwort
HCB

Registriert seit: 12. Feb 2020
160 Beiträge
 
Delphi 12 Athens
 
#1

Access SQL Nur Felder anzeigen wo Value >0

  Alt 18. Mai 2024, 11:38
Datenbank: Access • Version: 2003 • Zugriff über: FireDac
Hallo, ich habe auf den Tipp von Delphi.Narium mal die KI bemüht, hat aber leider nicht den gewünschten Erfolg gebracht. Deshalb wende ich mich nochmals hier an die wirklichen Profis.
Ich habe eine Tabelle in der nur eine Zeile (mit 170 Feldern) steht. In dieser befinden sich u.a. sechs Felder die ich auslesen muss. Es sollen aber nur die Felder von den 6 gelistet werden die auch einen Wert > 0 haben. Der folgende Code bringt mir aber auch die Felder, die den Wert 0 haben. Es sind Felder vom Typ Currency.

Delphi-Quellcode:
SELECT FKAbfPreisEinheit_0,FKAbfPreisEinheit_1,FKAbfPreisEinheit_2,FKAbfPreisEinheit_3,FKAbfPreisEinheit_4,FKAbfPreisEinheit_5
FROM sABFKons
WHERE FKAbfPreisEinheit_0 > 0 OR FKAbfPreisEinheit_1 > 0 OR FKAbfPreisEinheit_2 > 0 OR FKAbfPreisEinheit_3 > 0 OR FKAbfPreisEinheit_4 > 0 OR FKAbfPreisEinheit_5 > 0;
Kann jemend erkennen warum das so ist, oder wie man das umschreibt?
Für Eure Unterstützung würde ich mich sehr freuen.

LG Harry
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.089 Beiträge
 
Delphi 12 Athens
 
#2

AW: Access SQL Nur Felder anzeigen wo Value >0

  Alt 18. Mai 2024, 12:10
Die Abfrage bewirkt ja, dass bei einem Datensatz immer alle sechs Felder ausgegeben werden, solange mindestes eines einen Wert > 0 hat.
Es sollen aber nur die Felder von den 6 gelistet werden die auch einen Wert > 0 haben.
Man kann keine Abfrage erstellen, bei der die Anzahl der ausgegebenen Felder für einzelne Datensätze unterschiedlich ist.

Musst du denn wissen, wie die jeweiligen Felder mit Wert > 0 heißen oder bist du nur an den Werten interessiert?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.089 Beiträge
 
Delphi 12 Athens
 
#3

AW: Access SQL Nur Felder anzeigen wo Value >0

  Alt 18. Mai 2024, 12:21
Eine Möglichkeit wäre vielleicht sowas:
SQL-Code:
SELECT FKAbfPreisEinheit_0 AS FKAbfPreisEinheit
FROM sABFKons
WHERE FKAbfPreisEinheit_0 > 0
UNION ALL
SELECT FKAbfPreisEinheit_1 AS FKAbfPreisEinheit
FROM sABFKons
WHERE FKAbfPreisEinheit_1 > 0
UNION ALL
SELECT FKAbfPreisEinheit_2 AS FKAbfPreisEinheit
FROM sABFKons
WHERE FKAbfPreisEinheit_2 > 0
UNION ALL
SELECT FKAbfPreisEinheit_3 AS FKAbfPreisEinheit
FROM sABFKons
WHERE FKAbfPreisEinheit_3 > 0
UNION ALL
SELECT FKAbfPreisEinheit_4 AS FKAbfPreisEinheit
FROM sABFKons
WHERE FKAbfPreisEinheit_4 > 0
UNION ALL
SELECT FKAbfPreisEinheit_5 AS FKAbfPreisEinheit
FROM sABFKons
WHERE FKAbfPreisEinheit_5 > 0
Das liefert dir 0 bis 5 Datensätze mit den Werten. Willst du noch wissen, welche Nummer der Wert hat, kannst du die jeweiligen SELECTs um diese ergänzen:
SQL-Code:
SELECT 0 AS Nr, FKAbfPreisEinheit_0 AS FKAbfPreisEinheit
FROM sABFKons
WHERE FKAbfPreisEinheit_0 > 0
UNION ALL
SELECT 1 AS Nr, FKAbfPreisEinheit_1 AS FKAbfPreisEinheit
FROM sABFKons
WHERE FKAbfPreisEinheit_1 > 0
UNION ALL
SELECT 2 AS Nr, FKAbfPreisEinheit_2 AS FKAbfPreisEinheit
FROM sABFKons
WHERE FKAbfPreisEinheit_2 > 0
UNION ALL
SELECT 3 AS Nr, FKAbfPreisEinheit_3 AS FKAbfPreisEinheit
FROM sABFKons
WHERE FKAbfPreisEinheit_3 > 0
UNION ALL
SELECT 4 AS Nr, FKAbfPreisEinheit_4 AS FKAbfPreisEinheit
FROM sABFKons
WHERE FKAbfPreisEinheit_4 > 0
UNION ALL
SELECT 5 AS Nr, FKAbfPreisEinheit_5 AS FKAbfPreisEinheit
FROM sABFKons
WHERE FKAbfPreisEinheit_5 > 0
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
DaCoda

Registriert seit: 21. Jul 2006
Ort: Hamburg
103 Beiträge
 
Delphi 12 Athens
 
#4

AW: Access SQL Nur Felder anzeigen wo Value >0

  Alt 18. Mai 2024, 13:52
Wenn ich dich richtig verstanden habe, dann Eventuell so:

Code:
SELECT FKAbfPreisEinheit_0,FKAbfPreisEinheit_1,FKAbfPreisEinheit_2,FKAbfPreisEinheit_3,FKAbfPreisEinheit_4,FKAbfPreisEinheit_5
FROM sABFKons
WHERE FKAbfPreisEinheit_0 <> 0 AND FKAbfPreisEinheit_1 <> 0 AND FKAbfPreisEinheit_2 <> 0 AND FKAbfPreisEinheit_3 <> 0 AND FKAbfPreisEinheit_4 <> 0 AND FKAbfPreisEinheit_5 <> 0;
Debuggers don’t remove bugs, they only show them in slow-motion.
  Mit Zitat antworten Zitat
HCB

Registriert seit: 12. Feb 2020
160 Beiträge
 
Delphi 12 Athens
 
#5

AW: Access SQL Nur Felder anzeigen wo Value >0

  Alt 18. Mai 2024, 15:36
Hallo und Danke!
Uwes erste Möglichkeit war genau das was ich brauche. Super!

LG Harry
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:36 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