Table principale Table utilisateur
id nom téléphone (champ associé)
De la table d'enregistrement des appels
id du téléphone (champ associé) ot_phone type d'heure (appels entrants et sortants) input_time
Formulaire de contact
id c_id phone
Tableau de l'entreprise
c_id nom
Comment compter les appels téléphoniques de tout le monde (limite de liste 0, 10)
Combien d'appels entrants
Combien d'appels sortants
Combien de numéros locaux
Combien de numéros à l'extérieur de la ville
Combien d'appels entrants au total
Combien d'appels sortants au total
Combien d'entreprises correspondantes (principalement à cause de cela, parce que les téléphones dans la table de contacts ont le même téléphone, mais correspondent à des entreprises différentes, les données de gauche join sum() sont inexactes)
Correspond à l'heure d'appel de l'entreprise
.... .
Le problème principal est : le numéro de téléphone dans le tableau des contacts n'est pas unique, il y a des numéros de téléphone en double, par exemple, une personne travaille pour deux entreprises
Après avoir rejoint la somme
L'entreprise aura des données en double et les données sont inexactes
En fait, j'ai pensé à dédupliquer le téléphone de la table de contact puis à le joindre à d'autres tables, mais cela serait extrêmement lent et prendrait 50 secondes
La table de contact coûte plus de 50 000 yuans
Il semble que cela ne puisse pas être résolu avec un seul SQL
Le résultat final
est similaire à
id nom téléphone in_num (nombre d'appels entrants) out_num (nombre d'appels sortants) local_phone_num (numéro local) .....
23 '小白' 15523232323 45 120 30 .... .
24' 小红' 18823232323 70 93 41 ......
Tout d'abord, vous devez disposer d'un champ qui définit les numéros locaux et étrangers, puis si vous devez afficher les numéros sans enregistrements d'appels. Si nécessaire, modifiez le SQL suivant en jointure à gauche et effectuez un jugement nul sur la valeur dans le. bonne table. Sinon, vous pouvez directement Utilisé
Pour ajouter, si la durée de l'appel dans le tableau b n'est pas un type statistique de minutes, vous devrez peut-être la convertir
Exécutez le SQL suivant et vous obtiendrez les résultats suivants : (Les résultats attendus dans votre question ne sont pas clairs)
SQL
Vous pouvez utiliser une requête de jointure externe