AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken SQL mit Daten auch in x-Richtung
Thema durchsuchen
Ansicht
Themen-Optionen

SQL mit Daten auch in x-Richtung

Ein Thema von zeras · begonnen am 2. Okt 2010 · letzter Beitrag vom 2. Okt 2010
Antwort Antwort
zeras
Online

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.633 Beiträge
 
Delphi 12 Athens
 
#1

SQL mit Daten auch in x-Richtung

  Alt 2. Okt 2010, 14:14
Datenbank: Firebird • Version: 2.5 • Zugriff über: Delphi
Ich habe folgende Tabellenstruktur und kann damit schon viele Auswertungen machen. Zuerst hatte ich nur ein Stringgrid als Datenanzeige, aber mit SQL habe ich viel mehr Möglichkeiten. Eines habe ich aber in SQL noch nicht hinbekommen und zwar möchte ich zu den einzelnen Maschinennummern noch in der X-Ebene die jeweiligen Datumseinträge aus "swdate" mit einblenden.
Gibt es überhaupt eine solche Möglichkeit?
Im Anhang, wie es in Excel aussieht.

SQL-Code:
create table "manus"
(
  "manu_id"    integer not null,
  "manu"    char(8),
  "kund_id"    integer,
 primary key ("manu_id")
);

create table "swdate"
(
  "manu_id"    integer,
  "datum"    date
);

create table "kunden"
(
  "kund_id"    integer not null,
  "kundenname"    varchar(100),
constraint "pk_kunden" primary key ("kund_id")
);
Miniaturansicht angehängter Grafiken
2.dimension.jpg  
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#2

AW: SQL mit Daten auch in x-Richtung

  Alt 2. Okt 2010, 14:19
Das wird relativ schwierig, da du ja nicht weißt wie viele Daten es gibt. Oder wolltest du das gar nicht so in der Liste anzeigen wie auf den Screenshot?

MfG
Fabian
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
zeras
Online

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.633 Beiträge
 
Delphi 12 Athens
 
#3

AW: SQL mit Daten auch in x-Richtung

  Alt 2. Okt 2010, 14:28
Das wird relativ schwierig, da du ja nicht weißt wie viele Daten es gibt. Oder wolltest du das gar nicht so in der Liste anzeigen wie auf den Screenshot?

MfG
Fabian
Zur Zeit habe ich in X-Richtung von einer Spalte bis ca. 12 Spalten. Aber das kann von Zeile zu Zeile unterschiedlich sein. Bei einer Zeile gibt es nur 1 Datum, bei einer anderen Zeile können dann 12 Spalten auftauchen.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

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

AW: SQL mit Daten auch in x-Richtung

  Alt 2. Okt 2010, 14:42
Das nennt sich "Pivot-Tabelle".

Es ist machbar, ein SQL-SELECT Kommando zusammenzubauen, indem Du zunächst die einzelnen Maschinen ermittelst und dann ein entsprechendes SELECT zusammenbaust:

Code:
SELECT ...
Max(case when manu_id = 1 then Datum else null end) as "Maschine_mit_ID_1",
Max(case when manu_id = 2 then Datum else null end) as "Maschine_mit_ID_2",
...
from swDate
group by manu_Id
Ach so: Der o.g. Code is T-SQL für den MS-SQL Server, aber ähnlich dürfte das auch für Firebird gehen.

Alternativ kannst Du dir so eine Pivot-Tabelle auch im Speicher zusammenbauen.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
zeras
Online

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.633 Beiträge
 
Delphi 12 Athens
 
#5

AW: SQL mit Daten auch in x-Richtung

  Alt 2. Okt 2010, 14:56
[CODE=SQL]SELECT ...
Max(case when manu_id = 1 then Datum else null end) as "Maschine_mit_ID_1",
Max(case when manu_id = 2 then Datum else null end) as "Maschine_mit_ID_2",
...
from swDate
group by manu_Id

Ach so: Der o.g. Code is T-SQL für den MS-SQL Server, aber ähnlich dürfte das auch für Firebird gehen.

Alternativ kannst Du dir so eine Pivot-Tabelle auch im Speicher zusammenbauen.
OK, werde ich mal probieren. Zur Zeit habe ich nun so viele Möglichkeiten, was abzufragen durch SQL, das weiß ich gar nicht, was ich alles abfragen soll.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: SQL mit Daten auch in x-Richtung

  Alt 2. Okt 2010, 15:15
Diese Abfrage ergibt natürlich nicht das, was wir in dem Screenshot gesehen haben.

Hier werden ja die Maschinen in den Spalten angezeigt. Im Screenshot war da das Datum (1-12)
Eine andere Alternative ist es die Daten in einem ListView anzuzeigen.
Eine einfache Abfrage
Code:
select Maschine, Datum from foo
und die Maschine in der Caption-Zeile eintragen. Das Datum einfach mit SubItems.Add( Datum ) Die Spaltenanzahl anpassen und gut.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

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

AW: SQL mit Daten auch in x-Richtung

  Alt 2. Okt 2010, 15:46
Diese Abfrage ergibt natürlich nicht das, was wir in dem Screenshot gesehen haben.
alzaimar im Selbstgespräch: Wer lesen kann (bzw. Screenshots anschaut), ist klar im Vorteil.

Wie blöd von mir.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: SQL mit Daten auch in x-Richtung

  Alt 2. Okt 2010, 15:53
Wir verzeihen dir mal großzügig, weil heute der letzte Samstag der Woche ist
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  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 18:25 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