AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Wie mehrere Datensätze m.gleichen Feldwerten zusammenführen?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie mehrere Datensätze m.gleichen Feldwerten zusammenführen?

Offene Frage von "AirJordan"
Ein Thema von AirJordan · begonnen am 31. Jan 2007 · letzter Beitrag vom 2. Feb 2007
Antwort Antwort
Seite 2 von 3     12 3      
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#11

Re: Wie mehrere Datensätze m.gleichen Feldwerten zusammenfüh

  Alt 2. Feb 2007, 10:35
Nun gut, es interesiert also lediglich das Datum und die Uhrzeit und alles andere ist egal ? Das können auch Zufallswerte sein oder was ? Wie bereits gesagt : SP, die internern ermittelt, ob ein Datensatz mit gleichem Datum/Uhrzeit vorhanden ist und dann UPDATE. Falls nicht vorhanden : INSERT.

wg. roter Kasten : Oh je, ich sage besser nichts mehr. 8) Deshalb ohne Gewähr : in dem nachgelieferten Beispiel ist die 123 der erste Wert. Um nur den abzuspeichern, entfiele in der SP lediglich der UPDATE-Zweig.

VORHANDEN = -1;
SELECT ID FROM BLABLA WHERE (DATUM = ATUM AND UHRZEIT = :UHRZEIT) INTO :VORHANDEN;
IF VORHANDEN < 0 THEN
INSERT ...
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von AirJordan
AirJordan

Registriert seit: 29. Mär 2005
Ort: Hamburg
214 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Wie mehrere Datensätze m.gleichen Feldwerten zusammenfüh

  Alt 2. Feb 2007, 11:36
Zitat von mkinzler:
Dann stimmt doch sum() da 8+2 = 10
Dann würde aus vier Datensätzen ein! Datensatz mit der folgenden SQL Anweisung entstehen?!

SELECT Datum, Zeit, Sum(BZ), Sum(INSULIN), Sum(BE), INSULUIN_NAME, STATUS FROM DataImport GROUP BY Datum, Zeit; Dann habe ich danach folgendes in der DataImport:

Zitat:
"01.01.2007","20:00","123","10","2","RAPID","1 0"
Werde das heute Abend noch mal ausprobieren.
Holger
Georg Schramm über Lothar Dombrowski:
"Er krankt daran, dass die Leute in einer
schrecklichen Welt leben und lachen..."

_
  Mit Zitat antworten Zitat
Benutzerbild von AirJordan
AirJordan

Registriert seit: 29. Mär 2005
Ort: Hamburg
214 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: Wie mehrere Datensätze m.gleichen Feldwerten zusammenfüh

  Alt 2. Feb 2007, 11:42
Zitat von Hansa:
Nun gut, es interesiert also lediglich das Datum und die Uhrzeit und alles andere ist egal ? Das können auch Zufallswerte sein oder was ?
Naja Zufallswerte sind das alles nicht, sie kommen aus einer anderen Software in der die
Werte ebenfalls eingegeben werden können.

Zitat von Hansa:
wg. roter Kasten : Oh je, ich sage besser nichts mehr. 8)
Welcher rote Kasten?

Zitat von Hansa:
Deshalb ohne Gewähr : in dem nachgelieferten Beispiel ist die 123 der erste Wert. Um nur den abzuspeichern, entfiele in der SP lediglich der UPDATE-Zweig.

VORHANDEN = -1;
SELECT ID FROM BLABLA WHERE (DATUM = ATUM AND UHRZEIT = :UHRZEIT) INTO :VORHANDEN;
IF VORHANDEN < 0 THEN
INSERT ...
Werde ich mal austesten.
Holger
Georg Schramm über Lothar Dombrowski:
"Er krankt daran, dass die Leute in einer
schrecklichen Welt leben und lachen..."

_
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#14

Re: Wie mehrere Datensätze m.gleichen Feldwerten zusammenfüh

  Alt 2. Feb 2007, 11:59
Hallo Holger,

bei mir funktioniert das ausgezeichnet:

Delphi-Quellcode:
begin
  with Query do
  begin
    SQL.Text := 'select datum, zeit, max(bz) as bz, sum(ie) as ie, sum(be) as be '
              + 'into tageswerte from messwerte group by datum, zeit';
    ExecSQL;

    SQL.Text := 'select * from tageswerte order by datum, zeit';
    Open;
    // ...
    Close;
  end;
Freundliche Grüße
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Wie mehrere Datensätze m.gleichen Feldwerten zusammenfüh

  Alt 2. Feb 2007, 12:01
@Achim du hast aber ursprünglich was anderes geschrieben:
Zitat:
SELECT * FROM Tabelle GROUP BY Datum, Zeit, MAX(Wert1), MAX(Wert2), MAX(Wert3) ...
Markus Kinzler
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#16

Re: Wie mehrere Datensätze m.gleichen Feldwerten zusammenfüh

  Alt 2. Feb 2007, 12:59
Hallo Markus,

zu dem Zeitpunkt war die Anforderung ein simples folding - da war es egal, ob man Max(), Min() oder Sum() verwendet. Später hat Holger erklärt, dass er auch noch akkumulieren muss, weshalb ich die für mich erkenntlichen Werte auf Sum() umgestellt habe.

Freundliche Grüße
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Wie mehrere Datensätze m.gleichen Feldwerten zusammenfüh

  Alt 2. Feb 2007, 13:03
Nein ich meinte der Unterschied zwischen Feldliste und Gruppierungsliste
Markus Kinzler
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#18

Re: Wie mehrere Datensätze m.gleichen Feldwerten zusammenfüh

  Alt 2. Feb 2007, 13:10
Meinst du die Felder Wert1, Wert2, Wert3? Ich hatte mir inzwischen eine Testdatenbank erzeugt, wobei ich die Felder eigenwillig benannt habe, aber eigentlich wollte ich mit Beitrag #14 nur einen Machbarkeitsbeweis angesichts der Negativmeldung in Beitrag #4 antreten.


Edit: Ach Scheibenkleister - jetzt weiß ich was du meinst. Muss ich blind gewesen sein. So sorry.
  Mit Zitat antworten Zitat
Benutzerbild von AirJordan
AirJordan

Registriert seit: 29. Mär 2005
Ort: Hamburg
214 Beiträge
 
Delphi 7 Enterprise
 
#19

Re: Wie mehrere Datensätze m.gleichen Feldwerten zusammenfüh

  Alt 2. Feb 2007, 16:28
Zitat von marabu:
Hallo Holger,

bei mir funktioniert das ausgezeichnet:

Delphi-Quellcode:
begin
  with Query do
  begin
    SQL.Text := 'select datum, zeit, max(bz) as bz, sum(ie) as ie, sum(be) as be '
              + 'into tageswerte from messwerte group by datum, zeit';
    ExecSQL;

    SQL.Text := 'select * from tageswerte order by datum, zeit';
    Open;
    // ...
    Close;
  end;
Freundliche Grüße
Hallo Achim,

hmmm irgendwie geht das mit den SQL Befehlen in der Absolute Datebase noch nicht.
Wenn ich mit dem Group Befehl Datum und Zeit einbinde, meckert die Datenbank mit folgenden
Hinweis:

Zitat:
Field is not included in GROUP BY list. Table name = '', Field name = 'INSULIN_NAME', FieldNo = 8, Found field name = 'INSULIN_NAME' - Native error: 10342
Wenn ich dann alle mit SELECT gewählten Felder in die Gruppenliste einfüge, kommt zwar keine Fehlermeldung,
aber das SQL Ergebnis enthält genau die gleiche Anzahl Datensätze wie die ursprüngliche Importtabelle.
Holger
Georg Schramm über Lothar Dombrowski:
"Er krankt daran, dass die Leute in einer
schrecklichen Welt leben und lachen..."

_
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Wie mehrere Datensätze m.gleichen Feldwerten zusammenfüh

  Alt 2. Feb 2007, 16:29
Die Felder müßen entweder in der Gruppierung sein oder als Aggregat (Min, Max, AVG, Sum, ...)
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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:54 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