AGB  ·  Datenschutz  ·  Impressum  







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

ADS SUM

Ein Thema von Luciano · begonnen am 2. Apr 2006 · letzter Beitrag vom 3. Apr 2006
Antwort Antwort
Luciano

Registriert seit: 17. Dez 2003
Ort: Großostheim
126 Beiträge
 
Turbo Delphi für Win32
 
#1

ADS SUM

  Alt 2. Apr 2006, 21:56
Datenbank: ADS • Version: 5.04 • Zugriff über: ADS Komponenten (Query)
Hallo,

ich habe da ein kleines Problem mit volgender Abfrage die so aussieht

Delphi-Quellcode:
    with Q_Preis do
    begin
      Active := False;
      SQL.Clear;
      SQL.Add(' SELECT SUM(PREIS), '+
              ' DATUM '+
              ' FROM ESSEN '+
              ' WHERE DATUM BETWEEN :Datum1 AND :Datum2 '+
              ' GROUP BY DATUM ');
      Prepared := True;
      Params.ParamByName('Datum1').Value := DateOf(MonthCalendar2.Date);
      Params.ParamByName('Datum2').Value := DateOf(MonthCalendar3.Date);
      Active := True;
    end;
Die Query sagt mir das sie das Feld "Preis" nicht finden kann... aber es steht in der Query! Oder hat ADS ein Problem mit SUM()?

Danke für die Hilfe

Greets
Mike Santangelo
Wie kann ich den wissen was ich denke, wenn ich nicht höre was ich sage!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: ADS SUM

  Alt 2. Apr 2006, 21:58
Gibt es das Feld Presi in der Datenbanktabelle?
Markus Kinzler
  Mit Zitat antworten Zitat
Luciano

Registriert seit: 17. Dez 2003
Ort: Großostheim
126 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: ADS SUM

  Alt 2. Apr 2006, 22:01
Ja das gibt es...
SELECT * FROM ESSEN das funktioniert auch alles... nur eben nicht wenn ich das ganze mit SUM(PREIS) versuche... ADS will dann auch GROUP BY haben aber das ist weniger das Problem... ich brauche eben die Summe in der Zeitspanne...
Mike Santangelo
Wie kann ich den wissen was ich denke, wenn ich nicht höre was ich sage!
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: ADS SUM

  Alt 3. Apr 2006, 05:31
Verpass deiner Abfrage für die Summe von Preis mal einen Alias, auf den du dann zugreifst, etwa so:

Delphi-Quellcode:
with Q_Preis do
    begin
      Active := False;
      SQL.Clear;
      SQL.Add(' SELECT SUM(PREIS) SUMME_PREIS, '+
              ' DATUM '+
              ' FROM ESSEN '+
              ' WHERE DATUM BETWEEN :Datum1 AND :Datum2 '+
              ' GROUP BY DATUM ');
      Prepared := True;
      Params.ParamByName('Datum1').Value := DateOf(MonthCalendar2.Date);
      Params.ParamByName('Datum2').Value := DateOf(MonthCalendar3.Date);
      Active := True;
    end;
In obigem Beispiel griefst du dann nicht auf das Feld PREIS sondern auf den Alias SUMME_PREIS zu. Das ist auch kein ADS Problem, sondern gilt für alle Datenbanken: sobald du auf Aggregate zugreifen möchtest, mußt du einen Alias verwenden.

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: ADS SUM

  Alt 3. Apr 2006, 05:51
Hast du vielleicht persistente Zugriffsfelder für Q_PREIS angelegt?
@mikahl: Mü?te es nicht SELECT SUM(PREIS) as SUMME_PREIS heißen? Kenne mich in ADS nicht aus, aber in Standard-SQL braucht man das as.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: ADS SUM

  Alt 3. Apr 2006, 06:47
@mkinzler: Da hast du wohl Recht. Ich programmiere hauptsächlich mit Oracle und MS SQL Server, und da brauchst du es nicht. Ich kenne ADS nicht so genau und deshalb weiß ich nicht ob ADS ohne "AS" auskommt.

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
672 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: ADS SUM

  Alt 3. Apr 2006, 08:12
Zitat von Luciano:
Delphi-Quellcode:
    with Q_Preis do
    begin
      Active := False;
      SQL.Clear;
      SQL.Add(' SELECT SUM(PREIS), '+
              ' DATUM '+
              ' FROM ESSEN '+
              ' WHERE DATUM BETWEEN :Datum1 AND :Datum2 '+
              ' GROUP BY DATUM ');
      Prepared := True;
      Params.ParamByName('Datum1').Value := DateOf(MonthCalendar2.Date);
      Params.ParamByName('Datum2').Value := DateOf(MonthCalendar3.Date);
      Active := True;
    end;
Die Query sagt mir das sie das Feld "Preis" nicht finden kann... aber es steht in der Query! Oder hat ADS ein Problem mit SUM()?
Das resultierende Feld heisst EXPR (wäre irgendwie falsch, wenn eine Berechnung denselben Feldnamen wie die Ursprungsfelder automatisch annehmen würde - oder?).
BTW: Das SQL einmal im Architect ausgeführt und Du siehst das Ergebnis (wobei - hast Du schon einen Architect bzw überhaupt SQL? - ADS hat seit Version 5.5 eine SQL Erweiterung, Du hast ja noch 5.04....Fragen über Fragen).
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Luciano

Registriert seit: 17. Dez 2003
Ort: Großostheim
126 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: ADS SUM

  Alt 3. Apr 2006, 18:18
@joachimd

Da hast du vollkommen recht und ich habe wieder alles vergessen was ich mal gelernt hatte.... zu Vollständigkeit... so funzt es...

Delphi-Quellcode:
    with Q_Preis do
    begin
      Active := False;
      SQL.Clear;
      SQL.Add(' SELECT SUM(PREIS) AS SUMME_PREIS, '+
              ' DATUM '+
              ' FROM ESSEN '+
              ' WHERE DATUM BETWEEN :Datum1 AND :Datum2 '+
              ' GROUP BY DATUM ');
      Prepared := True;
      Params.ParamByName('Datum1').Value := DateOf(MonthCalendar2.Date);
      Params.ParamByName('Datum2').Value := DateOf(MonthCalendar3.Date);
      Active := True;
    end;

   DBText1.DataField := 'SUMME_PREIS';
Danke für die Hilfe/Erklärung
Mike Santangelo
Wie kann ich den wissen was ich denke, wenn ich nicht höre was ich sage!
  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 21:42 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