Не удалось найти код для ответа на этот запрос.

0

SQL> select * from display_on;

    ID NAME

     2 History of Art
     4 History of Art
     1 Berserk Charity
     5 Berserk Charity

SQL> выберите * из Art_Object;

    ID YEAR                      TITLE                     DES                       A_NAME

     1 1890                      Old Man                   An old man in the dark    van Gogh
     2 1894                      Cat                       White cat in black canvas van Gogh
     3 1853                      Monalisa                  Smiling woman             Leonardo
     4 1888                      The meeting               Two men talking           Picaso
     5 2017                      The crimson stone         Group of characters       Omar

SQL>

И запрос, который они задают мне, - это (Показывать количество экспонатов, выставленных на данный момент для каждого исполнителя.), Которые выставляются, означает, что они находятся в таблице "display_on".

Теги:
database
sql-server
join

2 ответа

2

Просто JOIN к двум столам с группой по и подсчитывайте:

SELECT
  o1.A_Name,
  COUNT(COALESCE(o2.ID, 0)) AS TotalNOfObjects
FROM Art_Object as o1
LEFT JOIN displayed_on AS o2 ON o1.ID = o2.ID
GROUP BY o1.A_Name;

Результаты:

|   A_Name | TotalNOfObjects |
|----------|-----------------|
| Leonardo |               1 |
|     Omar |               1 |
|   Picaso |               1 |
| van Gogh |               2 |
  • 0
    Что делать, если мне нужно отобразить, сколько предметов искусства в категории? Как, например, сколько арт-объектов в живописи + в скульптуре + в других и отображать количество в одной таблице? @ Win Cc
0

Ответ:

select count(ID), A_NAME 
from Art_Object 
where ID in (select ID from displayed_on) group by (A_NAME);
  • 0
    Подзапрос вообще не нужен
  • 0
    В вопросе четко сказано, что «выставленный экспонат» означает, что они находятся в таблице «display_on».
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню