AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL-Abfrage - mehrfach-count(*) ?
Thema durchsuchen
Ansicht
Themen-Optionen

SQL-Abfrage - mehrfach-count(*) ?

Ein Thema von uwi1961 · begonnen am 18. Jul 2008 · letzter Beitrag vom 18. Jul 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von uwi1961
uwi1961

Registriert seit: 27. Apr 2005
Ort: Jena
71 Beiträge
 
Delphi 7 Professional
 
#1

SQL-Abfrage - mehrfach-count(*) ?

  Alt 18. Jul 2008, 11:24
Datenbank: mySQL • Version: 5.0 • Zugriff über: myDAC
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 ...
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
Niemand interessiert sich dafür, wie etwas funktioniert, solange es funktioniert... (aus Matrix 2)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

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

  Alt 18. Jul 2008, 11:30
CASE..WHEN
Markus Kinzler
  Mit Zitat antworten Zitat
omata

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

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

  Alt 18. Jul 2008, 12:57
...wegen nicht Beachtung gelöscht.
  Mit Zitat antworten Zitat
Benutzerbild von uwi1961
uwi1961

Registriert seit: 27. Apr 2005
Ort: Jena
71 Beiträge
 
Delphi 7 Professional
 
#4

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

  Alt 18. Jul 2008, 13:03
also z.Bs. so:
SQL-Code:
select sum(case when s_sqlserver='2005-1Prozthen 1 else 0 end)+
sum(case when s_sqlserver='2005-2Prozthen 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
Niemand interessiert sich dafür, wie etwas funktioniert, solange es funktioniert... (aus Matrix 2)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

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

  Alt 18. Jul 2008, 13:06
Gibt es noch andere Varianten?
Markus Kinzler
  Mit Zitat antworten Zitat
omata

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

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

  Alt 18. Jul 2008, 13:06
Eine Spalte mit Lizenzanzahl in die Tabelle aufnehmen und dann mit dieser multiplizieren.
  Mit Zitat antworten Zitat
Benutzerbild von uwi1961
uwi1961

Registriert seit: 27. Apr 2005
Ort: Jena
71 Beiträge
 
Delphi 7 Professional
 
#7

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

  Alt 18. Jul 2008, 13:10
Zitat von mkinzler:
Gibt es noch andere Varianten?
ja noch mit 3 oder 4 Prozessoren... (bisher)


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
Niemand interessiert sich dafür, wie etwas funktioniert, solange es funktioniert... (aus Matrix 2)
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#8

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

  Alt 18. Jul 2008, 13:34
Hallo Uwe,

hilft Dir das weiter?

SQL-Code:
select
  sum(
    case when s_sqlserver='2005-1Prozthen 1
         when s_sqlserver='2005-2Prozthen 2
         when s_sqlserver='2005-3Prozthen 3
         when s_sqlserver='2005-4Prozthen 4
    else 0
    end
  ) As Ergebnis
from pc
Stephan
  Mit Zitat antworten Zitat
Benutzerbild von uwi1961
uwi1961

Registriert seit: 27. Apr 2005
Ort: Jena
71 Beiträge
 
Delphi 7 Professional
 
#9

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

  Alt 18. Jul 2008, 14:27
Ich habe es jetzt so:
SQL-Code:
select
  sum(
    case when s_sqlserver='S08 SQL Server 2005 (1 Proz-Lizenz) Standardthen 1
         when s_sqlserver='S09 SQL Server 2005 (2 Proz-Lizenz) Standardthen 2
         when s_sqlserver='S10 SQL Server 2005 (4 Proz-Lizenz) Standardthen 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?

Dank an alle die hier helfen ...
Niemand interessiert sich dafür, wie etwas funktioniert, solange es funktioniert... (aus Matrix 2)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

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

  Alt 18. Jul 2008, 14:53
SQL-Code:
Cast( sum(
   ...
  ) As integer) ) as "count(*)"
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:30 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