-1
votes

SQL Server Inner Join et Group par

dans SQL Server, j'essaie de regrouper par chaque personne de vente quelques infos comme suit:

J'ai 2 tables: positions et clients

dans la table des positions, j'ai les colonnes suivantes: client_id , Balance, Acquisition_cost et dans la table des clients J'utilise les colonnes suivantes: Client_id et Sales_Person.

Je veux grouper par Sales_Person (table des clients) The Client_Id, Solde, Acquisition_Cost (Table des positions)

J'ai essayé ceci: xxx

Ça me donne "position.Client_ID est invalide dans la liste Sélectionner car il n'est pas contenu dans une fonction globale ou le groupe par clause ".

Je précise que je suis assez nouveau sur SQL afin que cela ne sonne pas beaucoup une cloche à moi.


3 commentaires

Peut-être que vous voulez simplement commander par sales_person ?


Est-ce que cela répond à votre question? colonne " invalide dans la liste Sélectionner car il n'est pas contenu dans une fonction globale ou le groupe par clause "


Les échantillons de données et les résultats souhaités clarifieraient ce que vous voulez faire.


4 Réponses :


0
votes

Pour toute colonne de votre Sélectionnez que vous n'incluez pas dans le groupe par , vous devez utiliser une sorte de fonction agrégée ( max , somme , etc.) sur la colonne. Donc, vous pourriez l'écrire comme ceci: xxx

si vous voulez seulement que les totaux de vente_person et non client_id, vous pouvez simplement supprimer client_id à partir du code SELECT et et et et Groupe par : xxx


0 commentaires

0
votes

Vous devez ajouter des positions.Client_ID dans la clause du groupe par clause, car la sélection attend cette colonne si vous ne voulez vraiment pas de position.Client_id dans la sélection, alors pas besoin d'ajouter dans le groupe par clause


0 commentaires

0
votes
SELECT a.Client_ID, b.Sales_person, SUM(a.Balance) as Balance_Sum,SUM(a.Acquisition_cost) as Acquisition_Cost_Sum FROM Positions as a INNER JOIN Clients as b ON a.Client_ID = b.Client_ID GROUP BY a.Client_ID, b.Sales_person

1 commentaires

Bien que ce code puisse résoudre le problème, une bonne réponse doit également expliquer quel le code fait et comment contribue.



0
votes

Merci à vous tous les gars, voici le code qui fonctionne pour moi dans ce cas: xxx


0 commentaires