AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Leezeilen in SQL-Ausgabe
Thema durchsuchen
Ansicht
Themen-Optionen

Leezeilen in SQL-Ausgabe

Ein Thema von mschaefer · begonnen am 2. Mär 2006 · letzter Beitrag vom 3. Mär 2006
Antwort Antwort
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#1

Leezeilen in SQL-Ausgabe

  Alt 2. Mär 2006, 08:26
Datenbank: egal • Version: egal • Zugriff über: egal
Moin, moin,

möchte in einer SQL-Abfrage zwischen zwei Union Statements eine Leerzeile,
also Felder ohne Werte (mit Leerstrings) einfügen. Nehmen wir eine einfache Abfrage:


SQL-Code:

/* Wert des Artikelbestandes aufgeteilt nach Artikelgrupppen     */
SELECT Artikelgruppe, Sum(Artikelpreis) FROM Artikel
GROUP By Artikelgruppe

UNION ALL
/*  hier hätte ich gerne eine Zeile mit Leerwerten ohne Anzeige */
/*  Wie bringe ich die Zahlenspalte dazu keine Null anzuzeigen? */


/* gesamter Wert des Artikelbestandes     */
SELECT "Gesamtwert", Sum(Artikelpreis) FROM Artikel


Viele Grüße // Martin
Martin Schaefer
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#2

Re: Leezeilen in SQL-Ausgabe

  Alt 2. Mär 2006, 09:07
So sollte das funktionieren ...
SQL-Code:
/* Wert des Artikelbestandes aufgeteilt nach Artikelgrupppen     */ 
SELECT Artikelgruppe, Sum(Artikelpreis) FROM Artikel
GROUP By Artikelgruppe

UNION ALL
/*  hier hätte ich gerne eine Zeile mit Leerwerten ohne Anzeige */ 
/*  Wie bringe ich die Zahlenspalte dazu keine Null anzuzeigen? */ 

SELECT NULL AS [Artikelgruppe], NULL AS Expression1

UNION ALL

/* gesamter Wert des Artikelbestandes     */ 
SELECT "Gesamtwert", Sum(Artikelpreis) FROM Artikel


Numerische Felder (FLOAT,INT usw.) kann man nicht auf '' setzen.
Du hast also nur die Wahl zwischen NULL und 0.
Bei DateTime verhält sich das äquivalent.

Alphanumerische Felder kannst du auf '' oder NULL setzen.

In einigen Fällen musst du jedoch die Feld-Datentypen für die "hinzogemogelten" Datenzeile definieren, damit diese mit den beiden datenbahafteten SELECTs übereinstimmen.

Das geht bei MSSQL am besten mit CAST.

SQL-Code:
CAST(NULL AS VARCHAR(10))
CAST('AS VARCHAR(10))
CAST(0 AS INT)
...
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#3

Re: Leezeilen in SQL-Ausgabe

  Alt 3. Mär 2006, 07:35
Danke Jens,

nach einigen Tests kann ich Deinen Beitrag voll bestätigen. Im Standart-SQL-Satz ist sowas einfach nicht vorgesehen. Vielleicht wird das irgendwann mal in die Richtung erweitert, dass man einer SQL-Ausgabe Informationen über den gewünschten Style mit Farbe Zahlenformat (wie bei Excel..) usw. mitgeben kann. Aber da fliest noch etwas Wasser die Leine herunter...

Grüße aus Hannover // Martin
Martin Schaefer
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Leezeilen in SQL-Ausgabe

  Alt 3. Mär 2006, 08:14
Hoffentlich passiert das nie, denn wieso sollte es einen SQL-Server etwas angehen, wie die Tabelle formatiert wird? Ich möchte keine Leerzeile, sondern einen Strich!

Wieso fügst du nicht einfach eine zusätzliche Spalte ein:
SQL-Code:
Select 0 as tType, foobardata from Tabelle1
union
Select 1, moreFooBarData from Tabelle2
union
Select 2, BlaFaselFooBar from Tabelle3
Der Client (dessen Aufgabe die Formatierung ist) kann dann immer noch entscheiden, ob er zwischen den unterschiedlichen tTypes eine Leerzeile einfügt, oder doch eher einen dezenten Farbwechsel, oder, um Zicke Alzaimar zufrieden zu stellen, eben einen waagerechten Strich.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  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 13:14 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