Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Counter für SQL Query über mehrer Tabellen

Frage Entwicklung Datenbanken

Mitglied: nightman67

nightman67 (Level 1) - Jetzt verbinden

24.05.2012 um 15:59 Uhr, 2954 Aufrufe, 5 Kommentare

Hallo zusammen,

ich verstehe von SQL nicht sehr viel. Habe es aber dank Google geschaft mit eine entsprechende Abfrage zu erstellen. Handel sich um eine VMware vCenter DB.

SELECT vpxv_vms.NAME, vpx_datastore.NAME as "Datastore Name", vpxv_hosts.NAME as "Esx Host Name"

FROM VC_Database.dbo.VPXV_VMS,
VC_Database.dbo.VPXV_VM_DATASTORE,
VC_Database.dbo.VPX_DATASTORE,
VC_Database.dbo.VPXV_HOSTS

WHERE ( (vpxv_vms.vmid = vpxv_vm_datastore.vm_id)
AND (vpxv_vm_datastore.ds_id = vpx_datastore.ID)
AND (vpxv_hosts.hostid = vpxv_vms.hostid)
)
ORDER BY vpxv_vms.NAME ASC , vpx_datastore.NAME


Alls Resultat erhalte ich nun folgendes.

Name Datastore Name Esx Host Name

capiq NFS_01 Host1
edu001 NFS_01 Host1
test-1 NFS_02 Host2
test-2 NFS_01 Host2
test-3 NFS_03 Host3

Nun zu meiner Frage:

Wie passe ich die Abfrage an, das mir nur der Datastored Name angezeigt wird mit der Anzahl wie viel mal dieser gefunden wird.
Das Ergebnis müsste dann etwa so aussehen.

Datastored Name Anzahl

NFS1 3
NFS2 1
NFS3 1


Danke im vorraus für eure Hilfe.
Mitglied: Biber
24.05.2012, aktualisiert um 17:52 Uhr
Moin Nachtwächter67,

willkommen im vorraus Forum.
Einfach noch ein SELECT um deine vorhandene Abfrage herumwickeln.

Jetzt:
01.
SELECT vpxv_vms.NAME, vpx_datastore.NAME as "Datastore Name", vpxv_hosts.NAME as "Esx Host Name" 
02.
 
03.
FROM VC_Database.dbo.VPXV_VMS, 
04.
VC_Database.dbo.VPXV_VM_DATASTORE, 
05.
VC_Database.dbo.VPX_DATASTORE, 
06.
VC_Database.dbo.VPXV_HOSTS 
07.
 
08.
WHERE ( (vpxv_vms.vmid = vpxv_vm_datastore.vm_id) 
09.
AND (vpxv_vm_datastore.ds_id = vpx_datastore.ID) 
10.
AND (vpxv_hosts.hostid = vpxv_vms.hostid) 
11.
)
Nach dem Herumwickeln:
01.
 Select x."DataStoreName", count(x.*) as Anzahl from ( 
02.
SELECT vpxv_vms.NAME, vpx_datastore.NAME as "Datastore Name", vpxv_hosts.NAME as "Esx Host Name" 
03.
 
04.
FROM VC_Database.dbo.VPXV_VMS, 
05.
VC_Database.dbo.VPXV_VM_DATASTORE, 
06.
VC_Database.dbo.VPX_DATASTORE, 
07.
VC_Database.dbo.VPXV_HOSTS 
08.
 
09.
WHERE ( (vpxv_vms.vmid = vpxv_vm_datastore.vm_id) 
10.
AND (vpxv_vm_datastore.ds_id = vpx_datastore.ID) 
11.
AND (vpxv_hosts.hostid = vpxv_vms.hostid) 
12.
13.
) x 
14.
order by 1

Grüße
Biber

P.S. Bitte bei "SQL-Fragen" immer das konkrete Datenbankblech (z.B. MS SQLServer Express 2008, Oracle 10.2.0.5 oder Access 2010) mit angeben.
Denn "SQL" ist in etwa so standardisiert wie die Buletten-in-Weissmehlpamps-Bezeichnungen bei Burger King und McDonalds.
Bitte warten ..
Mitglied: nightman67
24.05.2012 um 20:31 Uhr
Hallo Biber,

Danke für die schnelle Antwort.

Es handel sich hier um SQL Server 2008 R

Bei deiner Abfrage erhalte ich folgende Fehlermeldungen.

Msg 102, Level 15, State 1, Line 2
Incorrect syntax near '*'.
Msg 102, Level 15, State 1, Line 14
Incorrect syntax near 'x'.

Vieleich ne blöde Frage. Aber muss ich x durch was ersetzen.

Gruss nightman67 oder bedankt mann sich mir dem Vornamen?
Bitte warten ..
Mitglied: Biber
24.05.2012, aktualisiert um 20:56 Uhr
Moin nightman67,

ich versuche es noch mal - vielleicht dieses Mal SQL Server 2008-kompatibel.

Kann ich leider gerade nicht testen, weil ich keinen im Zugriff habe gerade.

Problem bei meiner Formulierung können eigentlich nur zwei der üblichen SQL-Sollbruchstellen sein:

- Die Pseudofeldnamen mit "Leerzeichen im Namen"
- oder der Alias x innerhalb von Count() verwendet.

Bitte versuch es mal so
.... upps , Moment... ich sehe gerade, ich spreche als erstes Feld nach dem ersten SELECT ein nicht-existentes an (x."DataStoreName" statt x."DataStore Name")

..also...
01.
 Select x.DataStoreName  as "DataStore Name", count(*) as Anzahl from ( 
02.
SELECT vpxv_vms.NAME,  
03.
       vpx_datastore.NAME as DatastoreName,  
04.
       vpxv_hosts.NAME as "Esx Host Name" 
05.
   FROM VC_Database.dbo.VPXV_VMS, 
06.
        VC_Database.dbo.VPXV_VM_DATASTORE, 
07.
        VC_Database.dbo.VPX_DATASTORE, 
08.
        VC_Database.dbo.VPXV_HOSTS 
09.
    WHERE (  
10.
     (vpxv_vms.vmid = vpxv_vm_datastore.vm_id)  
11.
      AND (vpxv_vm_datastore.ds_id = vpx_datastore.ID) 
12.
      AND (vpxv_hosts.hostid = vpxv_vms.hostid) 
13.
14.
) x 
15.
order by 1
Und nein, du musst den Alias "x" nicht durch irgendwas ersetzen.
Es sei denn, du magst z.B. den Alias "y" lieber.
Kannst auch den Alias "Lafontaine" nehmen, der ist auch verfügbar momentan.

Und ob du dich mit dem Vornamen bedankst oder dem Nicknamen...
... es wird beides gern und jedesmal freudig überrascht entgegengenommen.

Aber NIEMALSNICHT im Voraus (oder gar "im vorraus") bedanken.

Grüße
Biber
Bitte warten ..
Mitglied: nightman67
24.05.2012 um 21:31 Uhr
Hallo Bieber,

jetzt erhalte ich folgende Fehlermeldung.
Msg 8120, Level 16, State 1, Line 2
Column 'x.Datastore Name' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Habe mal den Google bemüht.

An den Leerzeichen und dem Alias als X hat es nicht gelegen. Das geht.
Hier nun die Abfrage die Funktioniert. (Mit Leerzeichen)

Select x."DataStore Name" as "DataStore Name", count(*) as Anzahl from (
SELECT vpxv_vms.NAME,
vpx_datastore.NAME as "Datastore Name",
vpxv_hosts.NAME as "Esx Host Name"
FROM VC_Database.dbo.VPXV_VMS,
VC_Database.dbo.VPXV_VM_DATASTORE,
VC_Database.dbo.VPX_DATASTORE,
VC_Database.dbo.VPXV_HOSTS
WHERE (
(vpxv_vms.vmid = vpxv_vm_datastore.vm_id)
AND (vpxv_vm_datastore.ds_id = vpx_datastore.ID)
AND (vpxv_hosts.hostid = vpxv_vms.hostid)
)
) x
Group by "Datastore Name"
order by 1

So nun kann ich mich für deine Hilfe bedanken.
Gruss nightman67
Bitte warten ..
Mitglied: Biber
24.05.2012 um 22:05 Uhr
Moin Nachtmahr67,

nochmal uuppps... ist mir nicht aufgefallen, dass ich jegliches "GROUP BY" vollkommen unterschlagen habe. *peinlich*

...ähhm ja... ich schieb es mal auf die Wärme heute und gestern und hoffe, dass es dort, wo wir später mal alle hingehören, etwas schattiger ist.

....obwohl, Gerüchten zufolge....

Egal, schönen Abend dir
Biber
Bitte warten ..
Ähnliche Inhalte
Datenbanken
SQL Abfrage aus mehreren Tabellen
gelöst Frage von el-torontoDatenbanken2 Kommentare

Hallo, auf dem Bild die vereinfachte Darstellung. Problematik: - Tabelle 1 enthält hunderte Kunden und wird mit Werten und ...

Datenbanken
SQL - Mehrere Tabellen über JOINS verketten
Frage von GwahlersDatenbanken1 Kommentar

Aktuell habe ich das Problem dass die Ausgabe von meinen Erwartungen abweicht JOINS und Tabellen im Anhang Folgende Abfrage ...

Datenbanken
SQL COUNT und DESTINCT auf die selbe Spalte
gelöst Frage von membarDatenbanken3 Kommentare

ich will eine Liste erzeugen mit den gleichen Namen und dahinter soll die Anzahl stehen wie of diese vorkommt. ...

Datenbanken
SQL - Abfragen - Mehrere Tabellen - Problem WHERE-Filter
gelöst Frage von Andy1987Datenbanken12 Kommentare

Guten Morgen, ich muss mich derzeit mit SQL-Abfragen rumschlagen, um unsere Inventarisierung etwas Übersichtlicher zu gestallten. Mein Problem ist ...

Neue Wissensbeiträge
Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 5 StundenWindows 101 Kommentar

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 7 StundenSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 1 TagViren und Trojaner2 Kommentare

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 1 TagRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Brainstorming, einfachste Option 1 getrenntes LAN (mit WAN zugang)
Frage von 132954LAN, WAN, Wireless13 Kommentare

Hi, folgendes: Wir bekommen eine Glasfaser Leitung, Und das sollte Optional so aussehen: Ein Modem/Router für das WAN, ein ...

Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Netzwerkgrundlagen
Hi eine blöde frage. xD
Frage von 132954Netzwerkgrundlagen12 Kommentare

Also: Habe 2012 r2 essentials neuinstalliert, allerdings installiert diese version ja gleich diesen gangen AD kram mit, den hab ...