Ik heb 2 kolommen uit 1 tabel met titel beller (telefoonr X) en gebelde (telefoonnr Y). Via SQL wil ik het volgende :

1 kolom met telefoonnr X en Y éénmalig en totaal XY elkaar hebben gecontacteerd ?
SELECT telefoonX, telefoonY, COUNT(1) aantal
FROM tabel
GROUP BY telefoonX, telefooY
Al een goede start :

"SELECT TelX, TelY AS Oproepen, COUNT(1) AS Aantal From Tabel GROUP BY TelX, TelY"

Doch bij resultaat in bijlage zie ik in kolom Oproepen zelfde nummers terugkomen terwijl ik die éénmalig wil zien... maar dan wel de optelling doet.

OPROEPEN - AANTAL

195242 9
191922 1
434849 1
195242 5
...

dus view 195242 2x ipv 1x en 9+5 zou 14 moeten zijn. (als ik het zo mag uitleggen ;-)
In dat geval GROUP BY TelY

edit 1:

SELECT
    gebelde,
    COUNT(1) aantal
FROM gesprekken
GROUP BY gebelde


edit 2:
En als je ook nog wilt weten wie de bellers waren per gebeld nummer, dan zo:

SELECT
    GROUP_CONCAT(DISTINCT beller) bellers,
    gebelde,
    COUNT(1) aantal
FROM gesprekken
GROUP BY gebelde
Prima.. en dan als laatste... hoe kan ik dan in de twee kolommen de kolom AANTAL ordenen ?

SELECT
    GROUP_CONCAT(DISTINCT beller) bellers,
    gebelde,
    COUNT(1) aantal
FROM gesprekken
GROUP BY gebelde
ORDER BY aantal DESC
Ik zit hier ergens met een tikfoutje... (VB)

StrQuery = "SELECT " & _
"GROUP_CONCAT(DISTINCT beller) AS Oproepen, " & _
"gebelde, COUNT(1) AS Aantal " & _
"FROM tabel" & _
"GROUP BY gebelde " & _
"ORDER BY aantal DESC"

Kan het zijn dat CONCAT niet gekend is in VB ?
Dat is een functie in MySQL, en staat los van VB. Wat gebeurt er nu dan? Wat zegt je foutenafhandeling?
Misschien nuttig maar mijn kennis reikt niet zover... graag had ik Mysql code omgezet gezien in gewone SQL (MS)

Reageren