Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Suche bestimmten SQL Code (https://www.delphipraxis.net/55886-suche-bestimmten-sql-code.html)

Plague 28. Okt 2005 09:03

Datenbank: MSSQL • Version: kA • Zugriff über: ASP

Suche bestimmten SQL Code
 
Hallo,

ich habe ein Problem, ich soll eine Statistikseite programmieren. Diese wird über ASP generiert und fragt soll eine Microsoft SQL Datenbank abfragen.

Ich habe alles soweit fertig, bis auf den SQL Code. Den bekomme ich einfach nicht hin.

Und zwar soll er:
Die Anzahl aller Einträge aus 5 unterschiedlichen Spalten zusammen addieren.

Ich glaube das ist etwas blöd erklärt.
Es geht also darum abzufrufen, wieviel Eintrage in einer Datenbank vorhanden sind (aber nur aus diesen 5 Spalten - denn es gibt insgesamt 12).
Wie müsste ich sowas machen?

Gruß
Thomas

Phoenix 28. Okt 2005 09:07

Re: Suche bestimmten SQL Code
 
Das ganze sollte mit
SQL-Code:
SELECT COUNT(*) FROM tablename WHERE klausel
gehen.

Am besten machst Du 2 Schritte:

1.) Die Select-Abrage, die Dir genau die Datensätze liefert die Du zählen willst
2.) Die Abfrage der Spalten gegen COUNT(*) ersetzen.

Plague 28. Okt 2005 09:14

Re: Suche bestimmten SQL Code
 
Aber darin habe ich doch keine Addition...
Hier bekomme ich doch nur die Anzahl der Einträge.

War von mir blöd erklärt.

Das sind alles INT Datenbankspalten.
Wenn also in der
1. 5
2. 4
3. 1
4. 0 und
5. 10
stehen würde, möchte ich nicht 5 herrausbekommen weil 5 Eingaben "NOT NULL" sind, sondern ich möchte 20 herrausbekommen, weil ich 1. + 2. + 3. + 4. + 5. rechnen will!

geht sowas überhaupt?

Angel4585 28. Okt 2005 09:21

Re: Suche bestimmten SQL Code
 
Mach doch ein berechnendes Feld das die automatisch zusammenaddiert und lies dann einfach das aus

Müsste eigentlich gehen oder?

Edit:oder schau mal in der LOCALSQL.hlp nach "arithmetische Operatoren", vielleicht hilft dir das weiter

Phoenix 28. Okt 2005 09:24

Re: Suche bestimmten SQL Code
 
Zitat:

Zitat von Plague
Und zwar soll er:
Die Anzahl aller Einträge aus 5 unterschiedlichen Spalten zusammen addieren.

Das ist COUNT(*). Count gibt die Anzahl der Datensätze aus.

Was Du willst ist die SUMME der Werte in einer Spalte, und da gibt es die Funktion SUM.

SQL-Code:
SELECT SUM(spaltenname) FROM tablename WHERE klausel

Angel4585 28. Okt 2005 09:26

Re: Suche bestimmten SQL Code
 
hmm.. ich glaub ich halt mich doch besser aus solchen Dingen raus bevor ich das nicht besser kann und überlass den Profis das Feld

Phoenix 28. Okt 2005 09:32

Re: Suche bestimmten SQL Code
 
Angel: Dein Lösungsansatz ist gar nicht so abwegig. Sollte eine solche Abfrage sehr häufig abgesetzt werden müssen wäre es aller Wahrscheinlichkeit nach performanter eine View anzulegen die genau diesen Wert zurückgibt und dann nur die View abzufragen. Das Ergebnis einer View wird nämlich in aller Regel gecached bis die zugrundeliegenden Daten / Pages invalidiert werden. Eine solche Abfrage wird nicht so lange gecached und demnach häufiger durch die DB neu berechnet.

Angel4585 28. Okt 2005 10:28

Re: Suche bestimmten SQL Code
 
Zitat:

Angel: Dein Lösungsansatz ist gar nicht so abwegig. Sollte eine solche Abfrage sehr häufig abgesetzt werden müssen wäre es aller Wahrscheinlichkeit nach performanter eine View anzulegen die genau diesen Wert zurückgibt und dann nur die View abzufragen. Das Ergebnis einer View wird nämlich in aller Regel gecached bis die zugrundeliegenden Daten / Pages invalidiert werden. Eine solche Abfrage (welche meinst du, meine oder die andere?) wird nicht so lange gecached und demnach häufiger durch die DB neu berechnet.
:gruebel:

Phoenix 28. Okt 2005 11:16

Re: Suche bestimmten SQL Code
 
Huch. :oops: Sorry, ich rutsche gerne in Details ab..

Also: Eine View ist eine Art 'virtuelle' Tabelle in einer Datenbank. Diese virtuelle Tabelle ist das Ergebnis einer in die Datenbank eingegebenen Abfrage. Sozusagen eine 'fest verdrahtete' SQL-Abfrage die auf einen Tabellennamen hört.

Diese View wird erstmalig generiert wenn Du diese virtuelle Tabelle abfragt. Die Datenbank führt das Statement das hinter dieser Tabelle steht aus und merkt sich das Ergebnis sowie die Stellen wo die Daten herkommen. Diese Ergebnis wird also (im Cache) zwischengespeichert, also gecachet. Bei einer neuen Abfrage dieser View wird also das gemerkte Ergebnis ausgeliefert und es muss nicht neu berechnet werden. Das ganze ist also in der Regel schneller (performanter) als jedes mal die Abfrage selber abzuschicken.

Ändern sich nun die Daten in der Datenbank merkt diese das und verwirft (invalidiert) das Zwischenergebnis, so dass die nächste Abfrage neu berechnet und somit wieder gültig (valide) ist.

Die normale Abfrage ohne View (besser: deren Ergebnis) wird nicht so lange zwischengespeichert und demnach häufiger neu berechnet, was wieder Performance / Leistung kostet.

Angel4585 28. Okt 2005 11:32

Re: Suche bestimmten SQL Code
 
:thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:00 Uhr.
Seite 1 von 3  1 23      

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