Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL-Abfrage - mehrfach-count(*) ? (https://www.delphipraxis.net/117451-sql-abfrage-mehrfach-count-%2A.html)

uwi1961 18. Jul 2008 10:24

Datenbank: mySQL • Version: 5.0 • Zugriff über: myDAC

SQL-Abfrage - mehrfach-count(*) ?
 
Hallo...

mit folgender Abfrage ermittel ich die Anzahl Installationen:

SQL-Code:
select count(*) from pc
where s_sqlserver='2005EE'
and art in ('S','ES');
Nun gibt es ja mittlerweile Lizenzformen, wo je Prozessor eine Lizenz benötigt wird :gruebel: ...
Kann ich in einer Abfrage - abhängig vom Eintrag (hier s_sqlserver z.B. "2005 2-Proz.") das count-Ergebnis
bereits in der Abfrage multiplizieren, da ich in der gesamten Abfrage gleich mehrere Einträge abfragen will?

Ich hoffe ich hab mich verständlich ausgedrückt.

Dank und Gruß Uwe

mkinzler 18. Jul 2008 10:30

Re: SQL-Abfrage - mehrfach-count(*) ?
 
SQL-Code:
CASE..WHEN

omata 18. Jul 2008 11:57

Re: SQL-Abfrage - mehrfach-count(*) ?
 
...wegen nicht Beachtung gelöscht.

uwi1961 18. Jul 2008 12:03

Re: SQL-Abfrage - mehrfach-count(*) ?
 
also z.Bs. so:
SQL-Code:
select sum(case when s_sqlserver='2005-1Proz' then 1 else 0 end)+
sum(case when s_sqlserver='2005-2Proz' then 2 else 0 end) as ergebnis from pc;
ergibt die Anzahl der nötigen Lizenzen ...

gibt es da eventuell noch einfachere Lösungen?

Gruß Uwe

mkinzler 18. Jul 2008 12:06

Re: SQL-Abfrage - mehrfach-count(*) ?
 
Gibt es noch andere Varianten?

omata 18. Jul 2008 12:06

Re: SQL-Abfrage - mehrfach-count(*) ?
 
Eine Spalte mit Lizenzanzahl in die Tabelle aufnehmen und dann mit dieser multiplizieren.

uwi1961 18. Jul 2008 12:10

Re: SQL-Abfrage - mehrfach-count(*) ?
 
Zitat:

Zitat von mkinzler
Gibt es noch andere Varianten?

ja noch mit 3 oder 4 Prozessoren... (bisher)


Zitat:

Zitat von omata
Eine Spalte mit Lizenzanzahl in die Tabelle aufnehmen und dann mit dieser multiplizieren.

in der Verwaltung sind sämtliche Lizenzen drin, bisher nur in diesem Fall diese spezielle Lizenzierung...
werd ich aber sicher trotzdem künftig vorsehen (Lizenzierung wird ja immmer undurchsichtiger :? )

Gruß Uwe

nahpets 18. Jul 2008 12:34

Re: SQL-Abfrage - mehrfach-count(*) ?
 
Hallo Uwe,

hilft Dir das weiter?

SQL-Code:
select
  sum(
    case when s_sqlserver='2005-1Proz' then 1
         when s_sqlserver='2005-2Proz' then 2
         when s_sqlserver='2005-3Proz' then 3
         when s_sqlserver='2005-4Proz' then 4
    else 0
    end
  ) As Ergebnis
from pc
Stephan

uwi1961 18. Jul 2008 13:27

Re: SQL-Abfrage - mehrfach-count(*) ?
 
Ich habe es jetzt so:
SQL-Code:
select
  sum(
    case when s_sqlserver='S08 SQL Server 2005 (1 Proz-Lizenz) Standard' then 1
         when s_sqlserver='S09 SQL Server 2005 (2 Proz-Lizenz) Standard' then 2
         when s_sqlserver='S10 SQL Server 2005 (4 Proz-Lizenz) Standard' then 4
    else 0
    end
  ) As "count(*)"
from pc
... da als Ergebnis das Feld "count(*) erwartet wird (wie bei den einfachen Abfragen)
klappt auch im Query-Browser, nur im Programm bekomme ich Fehler, da als Ergebnis ein LargeInt
erwartet wird, ein Float aber zurückkommt...
an welcher Stelle kann ich das konvertieren?

:thumb: Dank an alle die hier helfen ...

mkinzler 18. Jul 2008 13:53

Re: SQL-Abfrage - mehrfach-count(*) ?
 
SQL-Code:
Cast( sum(
   ...
  ) As integer) ) as "count(*)"


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 Uhr.
Seite 1 von 2  1 2      

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