AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Max(datum) min(Datum)

Ein Thema von Metallicwar · begonnen am 22. Sep 2011 · letzter Beitrag vom 23. Sep 2011
Antwort Antwort
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#1

Max(datum) min(Datum)

  Alt 22. Sep 2011, 13:40
Datenbank: ADS • Version: 10 • Zugriff über: Delphi
Hallo zusammen,
ich möchte mir, aus einer Datenbank für jeden Tag, die früheste und die späteste Zeit ausgeben lassen. An einem Tag können mehrere Buchungen vorhanden sein.

Beispiel:
Datum -- Kommen -- Gehen --
01.09.2011-- 05:00 -- 14:00
01.09.2011-- 14:01 -- 18:00
02.09.2011-- 08:00 -- 15:00
03.09.2011-- 07:00 -- 12:00
03.09.2011-- 12:00 -- 14:00
03.09.2011-- 14:00 -- 18:00

Das sollte als Ergebnis rauskommen:
01.09.2011--05:00--18:00
02.09.2011--08:00--15:00
03.09.2011--07:00--18:00

Mit
Code:
SELECT
MIN(CONVERT(CONVERT(Datum + IFNULL(Me1Day, 0), SQL_CHAR)
+ ' ' + CONVERT(Me1, SQL_CHAR), SQL_TIMESTAMP)) as Kommen,
MAX(CONVERT(CONVERT(Datum + IFNULL(Me2Day, 0), SQL_CHAR)
+ ' ' + CONVERT(Me2, SQL_CHAR), SQL_TIMESTAMP)) as Gehen
FROM Buchungen
WHERE ID_Personal = 88 and Datum = '01.09.2011'
kann ich mir für ein festhinterlegtes Datum die früheste und späteste Zeit ermitteln.
Ich möchte aber gerne, für jeden Tag des Monats, die früheste und späteste Zeit haben.
Kann mir jemand weiterhelfen?
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#2

AW: Max(datum) min(Datum)

  Alt 22. Sep 2011, 13:55
Sind das drei separate Felder in der Tabelle? Wenn ja, dann:

Code:
select
  datum
  , min(kommen)
  , max(gehen)
from
  buchungen
where
  ...
group by
  datum
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
 
Delphi 12 Athens
 
#3

AW: Max(datum) min(Datum)

  Alt 22. Sep 2011, 13:58
Hallo zusammen,
ich möchte mir, aus einer Datenbank für jeden Tag, die früheste und die späteste Zeit ausgeben lassen. An einem Tag können mehrere Buchungen vorhanden sein.
SQL-Code:
try drop table #buchungen; catch all end try;
create table #buchungen(datum date, kommen time, gehen time);
insert into #buchungen values ('01.09.2011','05:00','14:00');
insert into #buchungen values ('01.09.2011','14:01','18:00');
insert into #buchungen values ('02.09.2011','08:00','15:00');
insert into #buchungen values ('03.09.2011','07:00','12:00');
insert into #buchungen values ('03.09.2011','12:00','14:00');
insert into #buchungen values ('03.09.2011','14:00','18:00');

select datum, min(kommen), max(gehen)
  from #buchungen
  group by 1;
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Max(datum) min(Datum)

  Alt 22. Sep 2011, 14:02
Und das Datumsliteral solltet Ihr mal angleichen, sonst funktioniert es nur bei einer deutschen Locale.
Code:
WHERE ID_Personal = 88 and Datum = '2011-09-01'
Code:
insert into #buchungen values ('2011-09-01','05:00:00','14:00:00');
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#5

AW: Max(datum) min(Datum)

  Alt 22. Sep 2011, 14:08
besten dank.
Wieso auch kompiliziert, wenns so einfach geht.
Lg David
  Mit Zitat antworten Zitat
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#6

AW: Max(datum) min(Datum)

  Alt 22. Sep 2011, 16:58
Hab doch noch ein Problem...
Es soll zusätzlich noch für jeden Tag die BSumme zusammengefasst werden.
Datum -- Kommen -- Gehen -- BSumme -- AuftragNr
01.09.2011-- 05:00 -- 14:00 -- 540 --
01.09.2011-- 14:01 -- 18:00 -- 320 -- 12345
02.09.2011-- 08:00 -- 15:00 -- 420 -- 12345
03.09.2011-- 07:00 -- 12:00 -- 200 --
03.09.2011-- 12:00 -- 14:00 -- 120 -- 12345
03.09.2011-- 14:00 -- 20:00 -- 300 -- 12345

Ergebnis:
01.09.2011 | 05:00 | 18:00 | 320
02.09.2011 | 08:00 | 15:00 | 420
03.09.2001 | 07:00 | 18:00 | 420

Hoffe ihr versteht was ich meine,
denn wenn ich einfach nur sum(BSumme) mache, addiert er auch die Zeiten dazu, die nicht auf einen Auftrag gebucht worden sind.
Ich möchte aber nur die addieren, die auf einen Auftrag gebucht sind.
  Mit Zitat antworten Zitat
jaevencooler

Registriert seit: 8. Sep 2005
Ort: Friedrichshafen
41 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Max(datum) min(Datum)

  Alt 22. Sep 2011, 17:32
Moin, Moin


das musst Du in der where / and Bedingung Deines SQL-Statements mit
angeben, also in etwa so :

Delphi-Quellcode:
select sum(BSumme)
from #buchungen
where AuftragNr is not null;
Beste Grüße
Michael
Michael
Wissen ist Macht, nichts wissen macht auch nichts.
  Mit Zitat antworten Zitat
omata

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

AW: Max(datum) min(Datum)

  Alt 23. Sep 2011, 02:03
SQL-Code:
SELECT datum,
       MIN(kommen) start,
       MAX(gehen) ende,
       SUM(CASE WHEN AuftragNr IS NULL THEN 0 ELSE BSumme END) BSumme
FROM buchungen
GROUP BY datum
  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 11:08 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