![]() |
Datenbank: Access • Version: 2003 • Zugriff über: FireDac
Access SQL Nur Felder anzeigen wo Value >0
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:
Kann jemend erkennen warum das so ist, oder wie man das umschreibt?
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; Für Eure Unterstützung würde ich mich sehr freuen. LG Harry |
AW: Access SQL Nur Felder anzeigen wo Value >0
Die Abfrage bewirkt ja, dass bei einem Datensatz immer alle sechs Felder ausgegeben werden, solange mindestes eines einen Wert > 0 hat.
Zitat:
Musst du denn wissen, wie die jeweiligen Felder mit Wert > 0 heißen oder bist du nur an den Werten interessiert? |
AW: Access SQL Nur Felder anzeigen wo Value >0
Eine Möglichkeit wäre vielleicht sowas:
SQL-Code:
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:
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
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 |
AW: Access SQL Nur Felder anzeigen wo Value >0
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; |
AW: Access SQL Nur Felder anzeigen wo Value >0
Hallo und Danke!
Uwes erste Möglichkeit war genau das was ich brauche. Super! LG Harry |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz