Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL oder nicht SQL ... (https://www.delphipraxis.net/84029-sql-oder-nicht-sql.html)

alex517 12. Feb 2007 19:24

Re: SQL oder nicht SQL ...
 
Zitat:

Zitat von Hansa
Ah, Alex. Muss ich in Ruhe mal angucken. Das hier bleibt trotzdem jetzt so stehen.

Sorry Hansa, war die falsche SP, deshalb editiert.

omata 12. Feb 2007 19:33

Re: SQL oder nicht SQL ...
 
Warum so komplizert?

Leg dir eine Tabelle mit den Monaten an...

Tabelle Monate...
SQL-Code:
CREATE TABLE Monate (
  monat INT NOT NULL ,
  Bezeichnung varchar (50) NOT NULL ,
  CONSTRAINT [PK_Monate] PRIMARY KEY (monat_id) ON PRIMARY
) ON PRIMARY
Inhalt...
Code:
Monat Bezeichnung
1     Januar
2     ...
3
4
5
6
7
8
9
10
11
12
Und hol dir deine Daten...
SQL-Code:
SELECT *
FROM (SELECT *
      FROM monate, (SELECT DISTINCT jahr
                    FROM umsatz
                    WHERE jahr BETWEEN 2005 AND 2006) x) x
LEFT JOIN umsatz u
  ON    x.jahr = u.jahr
     AND x.monat = u.monat
ORDER BY x.jahr, x.monat
Gruss
Thorsten

Hansa 12. Feb 2007 20:14

Re: SQL oder nicht SQL ...
 
Omata, was ist bei einer Monatstabelle denn gewonnen ? Siehe meine Betriebsferien. :mrgreen: Den Urlaub zu unterbrechen, um einen 0-Umsatz einzugeben, das hätte ich gespart. Stattdessen müsste ich doch 2-mal zurückfliegen, um eben nur einen überflüssigen 0-Umsatz-Monat anzulegen. :P Gut, man könnte natürlich jetzt schon Monate bis zur Rente anlegen. Am Speicherplatz sollte es kaum liegen. :mrgreen:

mkinzler 12. Feb 2007 20:16

Re: SQL oder nicht SQL ...
 
Hansa, du scheint das Problem nicht zu verstehen. Nur weil in einem Monat kein Umsatz generiert wird, existiert dieser Monat doch trotzdem!

omata 12. Feb 2007 20:26

Re: SQL oder nicht SQL ...
 
@Hansa: Ich kann deinen Einwand leider nicht nachvollziehen.

Man kann die Jahre einschränken, auf Monate könnte man das auch noch ohne weiters. Und was mit deinen komischen Betriebsferien ist weiss ich auch nicht. Mir ging es nur darum die Daten, die in der Datenbank stehen auszulesen und darzustellen.

Wie auch immer, ihr könnt meinen Beitrag ja überlesen...

Gruss
Thorsten

Hansa 12. Feb 2007 21:21

Re: SQL oder nicht SQL ...
 
Zitat:

Zitat von omata
...Wie auch immer, ihr könnt meinen Beitrag ja überlesen...

Warum denn ? Hier soll doch diskutiert werden, oder nicht mehr ? :shock: Du meinst also, eine Tabelle, in der lediglich 12 Monate stehen und sonst nichts ? Also nicht leere Monate mit rumschleppen, wo Umsatz=0 (Betriebsferien) und das Jahr für Jahr ? Hmm, geht das so ? :gruebel:

mkinzler 12. Feb 2007 21:23

Re: SQL oder nicht SQL ...
 
Wenn er aber eine Umsatzliste pro Monat haben will, will er eine pro Monat und nicht pro Monat der Werte besitzt. Das Jahr hat 12 Monate egal wieviel Monate ein Betrieb vielleicht Ferien hat oder nicht.

omata 12. Feb 2007 21:30

Re: SQL oder nicht SQL ...
 
Klar können wir diskutieren.

Ich dachte das mit den leeren Monaten war gerade gewollt. Damit eventuelle Lücken aufgefüllt werden. Man kann natürlich noch einbauen, das Monate die in der Zukunft liegen noch nicht ausgegeben werden. Ich weiss jetzt gerade nicht wie ich an das aktuelle Datum in FB komme.

Für MSSQL würde das so aussehen...
SQL-Code:
SELECT *
FROM (SELECT *
      FROM monate, (SELECT DISTINCT jahr
                    FROM umsatz
                    WHERE jahr BETWEEN 2005 AND 2006) x) x
LEFT JOIN umsatz u
  ON    x.jahr = u.jahr
     AND x.monat = u.monat
WHERE x.jahr < YEAR(GETDATE())
   OR (x.jahr = YEAR(GETDATE()) AND x.monat <= MONTH(GETDATE()))
ORDER BY x.jahr, x.monat
Gruss
Thorsten

mkinzler 12. Feb 2007 21:33

Re: SQL oder nicht SQL ...
 
Zitat:

Ich weiss jetzt gerade nicht wie ich an das aktuelle Datum in FB komme.
CURRENT_DATE

mschaefer 19. Feb 2007 06:13

Re: SQL oder nicht SQL ...
 
Zunächst mal vielen Dank für die interessante Diskussion. Hattte einige Tage Computersperre (anderea Aufgaben). Selbst habe ich tatsächlich keine Monatstabelle. Das ist aber änderbar und dann ist die Möglichkeit per Join eine gute Lösung. Die Stored-Proc Lösung hat mich schon beeindruckt. Da ich möglichst DB unabhängig arbeiten soll, wird es wohl eine reine Join-Lösungwerden.

Das Problem ist ja übrigens sehr allgemein. Überall wo Vorlagen ausgefüllt werden sollen müssen auch Nullzeilen mit ausgegeben werden.Projekte pro Monat, Umsatz pro Mitarbeiter, neue Artikel pro Filiale...
Eigentlich ist es ein sehr allgemeines Problem und ich bedanke mich für die Vorschläge

Viele Grüße // Martin


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:35 Uhr.
Seite 3 von 3     123   

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