![]() |
Re: Suche bestimmten SQL Code
leute, sum und count arbeiten auf zeilen.
im post oben steht was von spalten! also eher so:
Code:
spalten duerfen nicht null sein!
select spalte1+spalte2+spalte3 from tabellen name
|
Re: Suche bestimmten SQL Code
halt mal..
Zitat:
:warn: Spalte ist von oben nach unten und er will jetzt die Werte der Spalten in EINER Zeile zusammenaddieren. stimmt doch alles was wir hier gesagt haben. Edit: Habs grad nochmal gelesen... Jetzt hab ich das nochmal anders verstanden: in der ersten Spalte sind z.B. 5 Zeilen(Einträge) in der zweiten Spalte sind 3 Zeilen(Einträge) jetzt will er 8 als ergebnis, also die anzahl an einträgen. Geht das? es sind doch eigentlich immer gleich viele Zeilen oder? nur das irgendwo vielleicht nichts drin steht. |
Re: Suche bestimmten SQL Code
Schön wäre es, wenn ich jetzt den Aufbau der besagten Tabelle kennen würde. Dann müsste ich mir nichts aus den Fingern saugen und du bräuchtest es nicht nochmal übersetzen ...
Angenommen deine Tabelle "Counters" hat den folgenden Aufbau
SQL-Code:
Die Daten sehen z.B. so aus ...
ID INT
Link01 INT Link02 INT Link03 INT Link04 INT Link05 INT Link06 INT Link07 INT Link08 INT
SQL-Code:
ID Link01 Link02 Link03 Link04 Link05 Link06 Link07 Link08 KlicksGesamt
------------------------------------------------------------------------------- 0 NULL NULL 3 NULL 4 NULL NULL NULL -- ?? << suchst du dafür was ? 1 1 NULL NULL NULL 5 1 NULL NULL 2 NULL 2 5 12 NULL NULL 2 8 ... und du möchtest generell wissen, wieviele Links bei einem Besuch geklickt wurden, dann würd auch das auch über ein berechnetes Feld lösen. Jedoch am besten über eine kleine Hilfsfunktion die ich dann anstatt des direkten Codes aufrufe ... Eine einzelne Abfrage könnte in etwa so aussehen ...
SQL-Code:
Falls definitiv keine NULL Werte vorkommen können, dann kannst du die CASE Verschachtelung auch weglassen.
SELECT CASE WHEN Link02 IS NOT NULL
THEN Link02 ELSE 0 END + CASE WHEN Link03 IS NOT NULL THEN Link03 ELSE 0 END + CASE WHEN Link04 IS NOT NULL THEN Link04 ELSE 0 END AS [Klicks_auf_Produkte] , CASE WHEN Link05 IS NOT NULL THEN Link05 ELSE 0 END + CASE WHEN Link06 IS NOT NULL THEN Link06 ELSE 0 END AS [Klicks_auf_Downloads] FROM Counters WHERE ID = 1 Schöne Grüße, Jens |
Re: Suche bestimmten SQL Code
Moin,
das Problem mit NULL-Werten kann man sehr elegant mit der COALESCE-Funktion umgehen.
SQL-Code:
MfG
SELECT COALESCE(Link02, 0) +
COALESCE(Link03, 0) + COALESCE(Link04, 0) AS [Klicks_auf_Produkte], COALESCE(Link05, 0) + COALESCE(Link06, 0) AS [Klicks_auf_Downloads] FROM Counters WHERE ID = 1 Thorsten |
Re: Suche bestimmten SQL Code
Zitat:
|
Re: Suche bestimmten SQL Code
Zitat:
SQL-Code:
Gibts da einen Unterschied zwischen isnull und COALESCE :gruebel:
SELECT isnull(Link02, 0) +
isnull(Link03, 0) + isnull(Link04, 0) AS [Klicks_auf_Produkte], isnull(Link05, 0) + isnull(Link06, 0) AS [Klicks_auf_Downloads] FROM Counters WHERE ID = 1 |
Re: Suche bestimmten SQL Code
Zitat:
|
Re: Suche bestimmten SQL Code
Wie kommt ihr auf einmal auf eine Quer berechnete Summe?
.oO(Ich liebe klare Fragestellungen ohne Beispiele...) |
Re: Suche bestimmten SQL Code
Zitat:
![]() |
Re: Suche bestimmten SQL Code
Zitat:
COALESCE gibe den ersten Wert einer Liste zurück, der nicht NULL ist. Wenn alle Werte NULL sind ist das Ergebnis egenfalls NULL.
SQL-Code:
ISNULL ersetzt NULL-Ausdrücke durch einen gezielten Ersatzwert.COALESCE(NULL,NULL,NULL,2,3,NULL) --ergibt 2 COALESCE(NULL,NULL,NULL) --ergibt NULL
SQL-Code:
ISNULL(NULL,0) --ergibt 0
ISNULL( 'Egal'+CAST(NULL AS VARCHAR(5)) ,'') --ergibt '' Schöne Grüße, Jens :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz