SQL vraag

Status
Niet open voor verdere reacties.

noeloe

Nieuwe gebruiker
Lid geworden
23 mrt 2006
Berichten
4
Hoi, ik ben een leek op het gebied van sql, maar wil graag het volgende weten.

Ik zou graag een tabel willen maken die het aantal namen telt en die naast elkaar in kolommen zet in plaats van onder elkaar:

select count(naam)
from person
where naam ‘%SIMON%’
UNION
select count(naam),
from person
where naam ‘%PIETER%’

Zo komen ze onder elkaar:

Naam
8
6

Maar ik wil het resultaat, dus naast elkaar hebben;

SIMON - - PIETER
-8 - - - - - - - -6-

Wie o Wie helpt me uit de brand :thumb:
 
Volgens mij moet dit wel werken:

SELECT count(p1.naam) SIMON, count(p2.naam) PIETER
FROM person p1, person p2
WHERE p1.naam='SIMON'
AND p2.naam='PIETER'
 
dank voor je reactie. Ze komen idd nu naast elkaar, maar ze zijn van dezelfde waarde....

Enig idee hoe dat komt?
 
De query moet er zo uitzien:

SELECT
(SELECT count(naam) AS SIMON FROM person WHERE naam='SIMON')
, (SELECT count(naam) AS PIETER FROM person WHERE naam='PIETER')
 
En als ik nu een percentage van die queries wil, dan komt er via

SELECT
((SELECT count(naam) AS SIMON FROM person WHERE naam='SIMON')
/
(SELECT count(naam) AS PIETER FROM person WHERE naam='PIETER'))

alleen maar 0 uit, terwijl er toch echt een getal uit moet komen

Is dat zo omdat die geen decimalen accepteerd ?

Iemand enig idee :confused:
 
Wellicht is het je al gelukt maar anders: Je moet het eerst even casten naar een decimal. Nu maakt hij er een integer van.

SELECT
(Cast((SELECT count(naam) AS SIMON FROM person WHERE naam='SIMON') as decimal(9,2))
/
Cast((SELECT count(naam) AS PIETER FROM person WHERE naam='PIETER') as decimal(9,2))

De uitkomst van een count is standaard een integer.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan