AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Anzahl der Ergebnis-Zeilen einer Query per SQL ermitteln ?

Anzahl der Ergebnis-Zeilen einer Query per SQL ermitteln ?

Ein Thema von FrankBKK · begonnen am 2. Sep 2006 · letzter Beitrag vom 2. Sep 2006
Antwort Antwort
Benutzerbild von FrankBKK
FrankBKK

Registriert seit: 20. Mai 2005
Ort: Bangkok
35 Beiträge
 
Delphi 7 Enterprise
 
#1

Anzahl der Ergebnis-Zeilen einer Query per SQL ermitteln ?

  Alt 2. Sep 2006, 09:32
Datenbank: Firebird • Version: 1.5 • Zugriff über: IBO
Ich steh etwas auf dem Schlauch, das sollte eigentlich kein grosses Problem sein aber ich komm einfach nicht drauf:

Wie kann ich (per SQL) die Anzahl der Zeilen ermitteln, die mir diese / oder jede andere query liefert ?
(Ich brauche den Wert in einer stored procedure)

SELECT
AUTO_ID_CUSTOMER
, SUM(UNIT_QTY*UNIT_PRICE)
FROM V_TRANSACTIONS
WHERE INV_DATE > '01/01/2006'
GROUP BY AUTO_ID_CUSTOMER
HAVING SUM(UNIT_QTY*UNIT_PRICE) < 100000
Frank
  Mit Zitat antworten Zitat
Hansi

Registriert seit: 8. Okt 2004
271 Beiträge
 
#2

Re: Anzahl der Ergebnis-Zeilen einer Query per SQL ermitteln

  Alt 2. Sep 2006, 09:37
Mit Query1.SQL.RecordCount bekommst du einen Integerwert der die Anzahl der Datenreihen angibt.

Hilft dir das?
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#3

Re: Anzahl der Ergebnis-Zeilen einer Query per SQL ermitteln

  Alt 2. Sep 2006, 09:39
Die Anzahl der Zeilen zu der Query
SQL-Code:
SELECT
AUTO_ID_CUSTOMER
, SUM(UNIT_QTY*UNIT_PRICE)
FROM V_TRANSACTIONS
WHERE INV_DATE > '01/01/2006
GROUP BY AUTO_ID_CUSTOMER
HAVING SUM(UNIT_QTY*UNIT_PRICE) < 100000
bekommst du per:
SQL-Code:
SELECT
COUNT(*)
FROM V_TRANSACTIONS
WHERE INV_DATE > '01/01/2006
GROUP BY AUTO_ID_CUSTOMER
HAVING SUM(UNIT_QTY*UNIT_PRICE) < 100000
Hoffentlich hab ich dich richtig verstnaden und das ist wirklich was du suchst

/edit Auha... Oder natürlich einfach so wie Hansi es schreibt... man sollte nicht immer gleich an SQL sondern auch mal an die Zugriffsobjekte denken
  Mit Zitat antworten Zitat
Benutzerbild von FrankBKK
FrankBKK

Registriert seit: 20. Mai 2005
Ort: Bangkok
35 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Anzahl der Ergebnis-Zeilen einer Query per SQL ermitteln

  Alt 2. Sep 2006, 09:48
Zitat von Thanatos81:
Die Anzahl der Zeilen zu der Query
bekommst du per:
SQL-Code:
SELECT
COUNT(*)
FROM V_TRANSACTIONS
WHERE INV_DATE > '01/01/2006
GROUP BY AUTO_ID_CUSTOMER
HAVING SUM(UNIT_QTY*UNIT_PRICE) < 100000
Hoffentlich hab ich dich richtig verstnaden und das ist wirklich was du suchst
Nee, das klappt leider nicht, da bekomm ich nur die Counts der
einzelnen Gruppen, aber nicht eine einzelne Summe ...

Zitat von Thanatos81:
/edit Auha... Oder natürlich einfach so wie Hansi es schreibt... man sollte nicht immer gleich an SQL sondern auch mal an die Zugriffsobjekte denken
Ja, aber die Query ist Teil einer StoredProcedure und den Wert brauch ich
danach. Wenn ich das ueber die Komponenten mache brauch ich zwei SP
und dann wirds ziemlich lahm weil ich die wechselweise aufrufen muss.
Frank
  Mit Zitat antworten Zitat
Dirk_B

Registriert seit: 15. Aug 2006
36 Beiträge
 
#5

Re: Anzahl der Ergebnis-Zeilen einer Query per SQL ermitteln

  Alt 2. Sep 2006, 10:48
Hallo,

nur eine Idee, nicht getestet!

Erzeuge am Anfang Deiner SP einen Generator, Counter, Sequenz oder wie immer das bei FB heißt.

Rufe diesen Generator in Deinem Select auf. Am Ende sollte der Counter die Anzahl der DS enthalten.

Falls es funktioniert (und Zeitverhalten aktzeptabel), bitte kurze Info. Habe in ca. 4 Wochen ähnliches Problem.

Mfg

DB
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#6

Re: Anzahl der Ergebnis-Zeilen einer Query per SQL ermitteln

  Alt 2. Sep 2006, 11:28
Zitat von FrankBKK:
Zitat von Thanatos81:
Die Anzahl der Zeilen zu der Query
bekommst du per:
SQL-Code:
SELECT
COUNT(*)
FROM V_TRANSACTIONS
WHERE INV_DATE > '01/01/2006
GROUP BY AUTO_ID_CUSTOMER
HAVING SUM(UNIT_QTY*UNIT_PRICE) < 100000
Hoffentlich hab ich dich richtig verstnaden und das ist wirklich was du suchst
Nee, das klappt leider nicht, da bekomm ich nur die Counts der
einzelnen Gruppen, aber nicht eine einzelne Summe ...
Ach klar, das kommt davon wenn man einfach mal so drauf lostippt Versuchs doch mal mit
SQL-Code:
SELECT COUNT(*) FROM
(SELECT
 AUTO_ID_CUSTOMER,
 SUM(UNIT_QTY*UNIT_PRICE)
 FROM V_TRANSACTIONS
 WHERE INV_DATE > '01/01/2006'
 GROUP BY AUTO_ID_CUSTOMER
 HAVING SUM(UNIT_QTY*UNIT_PRICE) < 100000)
Zitat von FrankBKK:
Zitat von Thanatos81:
/edit Auha... Oder natürlich einfach so wie Hansi es schreibt... man sollte nicht immer gleich an SQL sondern auch mal an die Zugriffsobjekte denken
Ja, aber die Query ist Teil einer StoredProcedure und den Wert brauch ich
danach. Wenn ich das ueber die Komponenten mache brauch ich zwei SP
und dann wirds ziemlich lahm weil ich die wechselweise aufrufen muss.
Dann klingt natürlich Dirk_Bs Alternative sehr verlockend
  Mit Zitat antworten Zitat
omata

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

Re: Anzahl der Ergebnis-Zeilen einer Query per SQL ermitteln

  Alt 2. Sep 2006, 13:09
Hallo FrankBKK,

oder alles in einer Abfrage...

SQL-Code:
SELECT auto_id_customer, SUM(unit_qty * unit_price) summe,
       (SELECT COUNT(*)
        FROM (SELECT auto_id_customer
              FROM v_transactions
              WHERE inv_date > '01/01/2006'
              GROUP BY auto_id_customer
              HAVING SUM(unit_qty * unit_price) < 100000) x) zeilen
FROM v_transactions
WHERE inv_date > '01/01/2006'
GROUP BY auto_id_customer
HAVING SUM(unit_qty * unit_price) < 100000
Gruss
Thorsten
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 18:31 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