Показать номер города, который посетил каждый водитель - PullRequest
1 голос
/ 23 октября 2019

Я на самом деле пытаюсь узнать, сколько раз водитель приезжал в город. Я близок к тому, чтобы получить хороший результат, но мне нужна небольшая помощь, чтобы достичь этого.

Итак, вот моя база данных

TABLE_NAME  COLUMN_NAME      DATA_TYPE
______________________________________
camion      immatriculation  char           <--- PK
camion      annee            date
camion      kilometrage      float
_____________________________________
conducteur  id_conducteur   int            <--- PK
conducteur  nom             varchar
conducteur  date_embauche   date
_______________________________________
trajet      id_conducteur   int            <--- PK, FK REFERENCES conducteur(id_conducteur)
trajet      immatriculation char           <--- PK, FK REFERENCES camion(immatriculation)
trajet      date_trajet     datetime       <--- PK
trajet      ville_depart    int            <--- FK REFERENCES ville(id)
trajet      ville_arrivee   int            <--- FK REFERENCES ville(id)
______________________________________
ville       id              int            <--- PK
ville       libelle         varchar

Тогда я хочу на примере узнать, какмного раз ездил водитель в каждый город, который он посещалбыть заменен простой «группой на»)

Итак, вот что я имею в результате:

nom     libelle     nbr_ville
BERNARD Avignon     2
BERNARD Avignon     1
BERNARD Bordeaux    1
BERNARD Bordeaux    1
BERNARD Nancy       3
BERNARD Nancy       3
BERNARD Paris       1
BERNARD Paris       1
BERNARD Strasbourg  1
DUPONT  Bordeaux    1
DUPONT  Bordeaux    1
DUPONT  Paris       1
DUPONT  Paris       1
DUPONT  Strasbourg  1
DUPONT  Strasbourg  1
MAXIME  Lyon        1
MAXIME  Lyon        1
MAXIME  Paris       1
MAXIME  Paris       1
MAXIME  Strasbourg  1
MAXIME  Toulouse    1
THIERY  Avignon     1
THIERY  Avignon     2
THIERY  Bordeaux    1
THIERY  Marseille   1
THIERY  Marseille   1
THIERY  Nancy       1
THIERY  Nancy       1
THIERY  Paris       2
THIERY  Paris       1
THIERY  Strasbourg  1

Но я бы хотел иметь группу всерезультат в столбце с именем 'libelle', который является названием города.

Как я могу это сделать?

Я пытаюсь просто сделать клевету GROUP BY на виртуальной машине toutevilleтаблицы, но если я хочу сделать это, я должен добавить 'nbr_ville' и 'nom' в группу или добавить их в агрегатную функцию, как сказал мне SQL Server.

Итак, что я хочу получитьэто:

nom     libelle     nbr_ville
BERNARD Avignon     3
BERNARD Bordeaux    2
BERNARD Nancy       6

вместо

nom     libelle  nbr_ville
BERNARD Avignon  2
BERNARD Avignon  1
BERNARD Bordeaux 1
BERNARD Bordeaux 1
BERNARD Nancy    3
BERNARD Nancy    3

1 Ответ

2 голосов
/ 23 октября 2019

Уверен, вы могли бы упростить весь ваш запрос до чего-то вроде этого.

SELECT c.nom
    , vd.libelle
    , COUNT(t.ville_depart) AS nbr_ville
FROM trajet t
JOIN conducteur c ON c.id_conducteur = t.id_conducteur
JOIN ville vd ON vd.id = t.ville_depart 
             OR vd.id = t.ville_arrivee
group by c.nom
    , vd.libelle
order by c.nom
    , vd.libelle
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...