J'ai une requête INSERT
qui extrait des données de deux tables et insère ces données dans une troisième table. Tout semble fonctionner correctement, sauf que la partie COUNT
de la requête ne renvoie pas les résultats que je m'attendais.Pourquoi la fonction count de SQL semble-t-elle faire plus que de compter la colonne à laquelle je la demande?
Le premier ensemble de tables exécuté par cette requête est MIUsInGrid1000
(nombre de lignes = 1) et Results1000
(nombre de lignes = 24). Le nombre renvoyé par la partie Count
de la requête est 24 au lieu d'être 1 comme je l'aurais espéré.
La prochaine série de tables est MIUsInGrid1000 (nombre de lignes = 3) et Results1000 (nombre de lignes = 30). Le nombre qui est renvoyé à partir de la partie Count
de la requête est 90 au lieu d'être 3 comme je l'aurais prévu.
Il semble que le produit des deux comptages soit ce qui me revient et je n'arrive pas à comprendre pourquoi. Si je supprime les références aux tables Results
, la requête fonctionne comme je le souhaitais. Je pense que je ne comprends pas comment au moins une partie de cela fonctionne. Quelqu'un peut-il expliquer pourquoi cela ne fonctionne pas comme je m'y attendais?
strQuery1 = "Insert Into MIUsInGridAvgs (NumberofMIUs, ProjRSSI, RealRSSI, CenterLat, CenterLong) " & _
"Select Count(MIUsInGrid" & i & ".MIUID), Avg(MIUsInGrid" & i & ".ProjRSSI), Avg(MIUsInGrid" & i & ".RealRSSI), Avg(Results" & i & ".Latitude), Avg(Results" & i & ".Longitude) " & _
"From MIUsInGrid" & i & ", Results" & i & " "
vous ne spécifiez pas quel DMBS vous utilisez ... – Javier
@Javier: Regardez les étiquettes! : D – Tomalak
vous joignez 2 tables sans prédicat de jointure, donc vous allez obtenir le produit de jointure croisée des deux. –