AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Problem mit UNION Select
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit UNION Select

Ein Thema von mu8zeh · begonnen am 6. Mai 2008 · letzter Beitrag vom 10. Mai 2008
Antwort Antwort
Seite 7 von 8   « Erste     567 8      
mu8zeh

Registriert seit: 31. Mai 2007
36 Beiträge
 
#61

Re: Problem mit UNION Select

  Alt 8. Mai 2008, 18:56
Hallo mkinzler,

ein kleines Problem habe ich da doch noch gefunden.
Die Variable "kurz" bleibt gefüllt.
bsp.
beim 1. gefundenen Datensatz am 1 Tag = Kurzzeichen "T"
beim 2. gefundenen Datensatz am 1 Tag auch = Kurzzeichen "T" aber nur dann, wenn der wert gleich Null oder '' sein sollte.

wo müsste ich die Variable leeren?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#62

Re: Problem mit UNION Select

  Alt 8. Mai 2008, 19:05
Wo auch die anderen Variablen geleert werden also d1 = ''; ... kurz = '':
Markus Kinzler
  Mit Zitat antworten Zitat
mu8zeh

Registriert seit: 31. Mai 2007
36 Beiträge
 
#63

Re: Problem mit UNION Select

  Alt 8. Mai 2008, 19:08
ups das habe ich übersehen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#64

Re: Problem mit UNION Select

  Alt 8. Mai 2008, 19:13
Man sollte es aber eher in die innere Schleife verschieben.
Markus Kinzler
  Mit Zitat antworten Zitat
mu8zeh

Registriert seit: 31. Mai 2007
36 Beiträge
 
#65

Re: Problem mit UNION Select

  Alt 8. Mai 2008, 19:14
ich versuche gerade mein glück
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#66

Re: Problem mit UNION Select

  Alt 9. Mai 2008, 18:58
Zitat von mu8zeh:
...Zeigen mir die Daten schon mal im Querformat an.
Einen Plan, wie ich das auf 2 Monate umsetzten kann hätte ich auch schon.
Und das verstehe ich schon wieder nicht! (ich scheine einfach zu doof zu sein, sorry)

Mein Vorschlag ist doch auch für mehrere Monate ausführbar und auch eingrenzbar. Allerdings kommt dort für jede Person eine Zeile pro Monat/Jahr heraus. Du willst doch wohl nicht alle Monate als Spalten realisieren? Was willst du den mit 365 Spalten? Was machst du in 10 Jahren -> 3650 Spalten?

Naja, wie auch immer: ich verstehe dich nicht.

Gruss
Thorsten
  Mit Zitat antworten Zitat
mu8zeh

Registriert seit: 31. Mai 2007
36 Beiträge
 
#67

Re: Problem mit UNION Select

  Alt 9. Mai 2008, 19:21
Hallo Thorsten

Nein Du hast alles super verstanden.

So wie Ihr die beiden Vorlagen erstellt habt ist es was ich wollte.
Ein kleines Problem habe ich aber bei der Anzeige auf Desktop.

Wenn Auflösung = 1024 x 768 ist, dann brauche ich nur einen Monat.
Ist aber Auflösung 1280 x 960 oder Monat = Februar, dann brauche ich zwei Monate.
Zum B. Aktuellen Monat und ca. die hälfte vom nächsten Monat.

Ich habe es noch nicht erstellt oder getestet. Aber ich denke mal, dass ich das mit zwei
DBGrids darstellen könnte.

Mit einem Monat geht es super. Konntest Du meiner Schilderung folgen?
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#68

Re: Problem mit UNION Select

  Alt 9. Mai 2008, 22:27
Ok, dann hier nochmal ein neuer Vorschlag...

Delphi-Quellcode:
uses DateUtils;

function GetSQL(StartTag:TDate; Monat:byte):string;
var s:string;
    Datum, Ende:TDate;
begin
  Datum:=StartTag;
  Ende:=IncMonth(StartTag, Monat)-1;
  s:='';
  while Datum <= Ende do begin
    s:=s + Format(
      ' MAX(CASE WHEN datum = %s ' +
                   'THEN kurzzeichen ' +
                   'ELSE NULL ' +
                 'END) AS "%s",',
      [QuotedStr(DateToStr(Datum)), DateToStr(Datum)]) + #13;
    Datum:=IncDay(Datum, 1);
  end;
  if s <> 'then
    s:=copy(s, 1, length(s)-2);
  Result:=
    Format(
      'SELECT EXTRACT(YEAR FROM datum) jahr,'#13 +
      ' EXTRACT(MONTH FROM datum) monat,'#13 +
      ' personalnr,'#13 +
      '%s'#13 +
      'FROM temp2007'#13 +
      'WHERE datum BETWEEN %s AND %s'#13 +
      'GROUP BY EXTRACT(YEAR FROM datum),'#13 +
      ' EXTRACT(MONTH FROM datum), personalnr'#13 +
      'ORDER BY EXTRACT(YEAR FROM datum),'#13 +
      ' EXTRACT(MONTH FROM datum), personalnr',
      [s,
       QuotedStr(DateToStr(StartTag)),
       QuotedStr(DateToStr(Ende))]
    );
end;
Aufruf...

Ein Monat:
Query.SQL.Text:=GetSQL(StrToDate('1.5.2008'), 1); Zwei Monate:
Query.SQL.Text:=GetSQL(StrToDate('1.5.2008'), 2); Halb + Ganz + Halb:
Query.SQL.Text:=GetSQL(StrToDate('15.4.2008'), 2); Gruss
Thorsten
  Mit Zitat antworten Zitat
mu8zeh

Registriert seit: 31. Mai 2007
36 Beiträge
 
#69

Re: Problem mit UNION Select

  Alt 9. Mai 2008, 22:39
Hallo Thorsten

vielen Dank. Ich werde es morgen einbauen und Rückinfo geben.

Ach ich konnte die Zeit nicht abwarten.
Was soll ich sagen. Ich bin sprachlos.
Ich entnehme aber daraus, dass Du etwas mit meiner Beschreibung anfangen konntest.

Nun wird es ein leichtes sein, die Daten entsprechend anzuzeigen.
Vielen Dank noch mal an alle die mir geholfen haben.

Grüße
Detlef
  Mit Zitat antworten Zitat
mu8zeh

Registriert seit: 31. Mai 2007
36 Beiträge
 
#70

Re: Problem mit UNION Select

  Alt 10. Mai 2008, 09:15
Eine Frage hätte ich da mal noch.

Was macht das „%“ Zeichen?
Möchte gerne Verstehen, was ich in das Prog. Schreibe
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 7 von 8   « Erste     567 8      


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 10:45 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