J'ai une base de données avec 2 colonnes qui sont (et doivent être) du même type d'identifiant client. J'essaye donc une requête SQL qui listera combien de fois chaque ID client apparaît dans le tableau. Jusqu'à présent, j'ai ce qui est ci-dessous, j'ai besoin que chaque identifiant individuel soit additionné afin qu'il ne soit répertorié qu'une seule fois. entrez la description de l'image ici

SELECT  TblMatch.CustomerID1, Count(TblMatch.[Match ID]) AS [TotalMatch ID]
FROM TblMatch
GROUP BY TblMatch.CustomerID1
UNION
SELECT TblMatch.CustomerID2, Count(TblMatch.[Match ID]) AS [TotalMatch ID]
FROM TblMatch
GROUP BY TblMatch.CustomerID2;
sql
-2
tori 26 avril 2017 à 06:37

3 réponses

Meilleure réponse

Essaye ça :

select ID, count([Match ID]) as [TotalMatch ID] from 
(
SELECT  TblMatch.CustomerID1 as ID, TblMatch.[Match ID]
FROM TblMatch
UNION ALL
SELECT TblMatch.CustomerID2 as ID, TblMatch.[Match ID]
FROM TblMatch
) tmp
group by ID
1
Esperento57 26 avril 2017 à 05:30

Votre requête doit être comme ceci:

SELECT * FROM (
    SELECT  CUSTOMERID1,COUNT(*)
      FROM TBLMATCH
  GROUP BY CUSTOMERID1
 UNION ALL
    SELECT  CUSTOMERID2, COUNT(*)
      FROM TBLMATCH
  GROUP BY CUSTOMERID2
)ORDER BY CUSTOMERID1;
0
shivam 26 avril 2017 à 10:01

Quelque chose comme ça devrait fonctionner, votre union est tout agrégée:

SELECT
  TblMatch.CustomerID1,
  Count(data.[Match ID]) AS [TotalMatch ID] 
FROM
  (
    TblMatch,
    (
      TblMatch.[Match ID]
    )
  UNION ALL
  SELECT
    TblMatch.CustomerID2,
    (
      TblMatch.[Match ID]
    )
  FROM
    TblMatch
  )
  data 
GROUP BY
  TblMatch.CustomerID1;
0
Pang 26 avril 2017 à 07:57