Не знаете, как выполнить этот запрос. Не знаю, как назвать этот тип запроса, пожалуйста, исправьте этот заголовок! - PullRequest
0 голосов
/ 22 июля 2011

Предполагается, что этот запрос будет выполняться с MS Access 2003 с использованием SQL.функция JOIN НЕ поддерживается явно.неявно в предложении WHERE все в порядке ... безукоризненность в любом месте хороша, пока не используется слово JOIN INNER JOIN Etc.

     DayNumnber   PastTime
               .
               .
               .

       333           Homework
       333           TV
       334           Date
       620           Chores
       620           Date
       620           Homework
       725           Chores
       725           Date
       888           Internet
       888           TV
                  .
                  .
                  .

Привет, я хотел бы запрос, который может показать самые важные прошедшие время, проведенные за каждый день (телевидение и интернет не считаются!). Так что важна будет домашняя работа> домашние дела> дата. Так:

       DayNumber     PastTime
         333           Homework
         334           Date
         620           Homework
         725           Chores

Что-то, что может изменить эту проблему.Все разные прошедшие времена слушают вместе за столом.но это потому, что я добавил таблицу.первоначально записи домашней работы.рутинные записи и даты входа.Интернет-вход.тв записи.пришли из разных таблиц.

 eg     homework 333
        homework 620

Проще ли это сделать, не добавляя эти таблицы сначала?Надеюсь, я хотел бы, чтобы это было сделано с прилагаемой таблицей, но я думал о смеси вкладышей.удалить ... но самое сложное - это проверить, есть ли что-то для свидания, несколько вещей и как сделать более важную вещь в этот день.Спасибо

1 Ответ

1 голос
/ 22 июля 2011

Создайте еще одну таблицу с:

Pri | PastTime
--------------
  1 | Homework
  2 | Chores
  3 | Date

Это список приоритетов для предметов.

Далее выполните:

  SELECT MIN(Pri), DayNumber
    FROM PastTime_table, Priority_table
   WHERE PastTime_table.PastTime = Priority_table.PastTime
GROUP BY DayNumber

Это даст вам больше всегоВажное прошедшее время для каждого дня.И поскольку телевидение и Интернет не указаны в списке, они не будут отображаться.

Но он даст вам номер, а не имя.

Если у вас был лучший SQL, вы могли бы присоединиться к этому.вернуться к Priority_table и найти имя.Но я думаю, вам придется выполнить эту часть вручную.

Если вы хотите изменить имя и назвать их:

A_Homework
B_Chores
C_Date

, тогда вы можете сделать это (без дополнительной таблицы):

  SELECT MIN(PastTime), DayNumber
    FROM PastTime_table
GROUP BY DayNumber

Так как имя сортируется в алфавитном порядке, оно всегда будет лучшим.

Вы можете добавить WHERE для удаления ТВ и Интернета.

...