2010-07-07 6 views
0

Je suis un étudiant c'est devoirs. Je suis fatigué et confus. Tout conseil sera apprécié.Sélectionnez SQL/groupe

J'ai deux tables.

employé a les colonnes suivantes:

  • Last_name
  • First_name
  • Adresse
  • Téléphone
  • JOB_TITLE (FK)
  • salaire

JOB_TITLE a

  • job_title (PK)
  • EAE classement
  • Job_description
  • Exempt_Non_Exempt

je dois sélectionner noms de famille des employés et de les regrouper par salaire au sein les titres d'emploi regroupés en exemption et non exempté. J'utilise SQL Server pour vérifier mon travail, mais il doit être écrit à la main.

+1

Avez-vous posé votre question correctement? Vous voudriez qu'un type d'agrégat fonctionne sur les colonnes qui ne sont pas groupées. Par exemple, obtenir le salaire maximum ou moyen et le regroupement par titre d'emploi. –

Répondre

1

Pouvez-vous fournir des exemples de données? Parce que le type de données pour JOB_TITLE.exempt_non_exempt ou ce qui doit être accompli selon les critères de regroupement spécifiés n'est pas clair pour moi - EMPLOYEE.last_name sera pour la plupart unique (mais il ne peut pas être garanti en raison du principe de M. Smith), donc il On dirait qu'il y a un besoin d'utilisation de la fonction agrégée.

Sur la base de ce que je l'ai lu, cela semble être ce que vous êtes après:

SELECT e.last_name, e.wage, jt.exempt_non_exempt 
    FROM EMPLOYEE e 
    JOIN JOB_TITLE jt ON jt.job_title = e.job_title 
GROUP BY e.last_name, e.wage, jt.exempt_non_exempt 

Vous rejoignez sur la clé étrangère/primaire pour obtenir des données valides des deux tables. La clause GROUP BY est l'endroit où vous définissez le groupement, mais la norme SQL est que si vous spécifiez des colonnes dans la clause SELECT sans être enveloppées dans des fonctions d'agrégat (IE: COUNT/MAX/MIN/etc), ces colonnes doivent être spécifié dans le GROUP BY.

+0

super juste ce dont j'avais besoin MERCI – rhonda