1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Помогите составить SQL-запрос

Тема в разделе "Программирование", создана пользователем Mikola, 06.03.10.

  1. Mikola

    Mikola Активный участник

    503
    0
    Таблица "Больные" - список больных и данные о них, не суть важно какие
    Таблица "Приемы" - id больного - дата приема

    Необходимо получить список всех больных с указанием даты последнего приема напротив.

    Это необходимо сделать ОДНИМ SQL-запросом!!! Без использования доп. средств языков программирования каких бы то нибыло!
     
  2. panda-34

    panda-34 Активный участник

    1.589
    2
    SELECT Больные.Данные_о_них, Max(Приемы.Дата_приема)
    FROM Больные LEFT JOIN Приемы ON Больные.id = Приемы.id
    GROUP BY Больные.Данные_о_них;
     
  3. Mikola

    Mikola Активный участник

    503
    0
    Что то Access на это ругается... :(

    "Попытка выполнить запрос, который не включает указанное выражение 'Данные_о_них' как часть статической функции или группы"
     
  4. хочу_вот_сказать

    хочу_вот_сказать Активный участник

    8.383
    4
  5. Mikola

    Mikola Активный участник

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

    Ссылка на синтаксис мне не нужна. Я не разработчик. Не логично тратить час или более времени на изучение SQL, если доброму человеку хватит минуты выложить тут запрос.
     
  6. LUKnet

    LUKnet Участник

    319
    0


    В запросе -то измените наименования таблиц и пр. :)
     
  7. Mikola

    Mikola Активный участник

    503
    0
    LUKnet, я не идиот!
     
  8. 1777

    1777 Активный участник

    7.076
    198
    давайте сделаем опрос - идиот ли Mikola :d

    зы Данные_о_них - это типа список полей в таблице :hah:
     
  9. Mikola

    Mikola Активный участник

    503
    0
    1777, черт!!! я это все понял!!!! Не работает!

    добавлено через 49 минут
    Разобрался!

    Вот так надо:

    SELECT Больные.Данные_о_них, Max(Приемы.Дата_приема)
    FROM Больные LEFT JOIN Приемы ON Больные.id = Приемы.id_больного
    GROUP BY Больные.Данные_о_них;


    Человек опечатался, а вы сразу обзываться как всегда не разобравшись! Лишь бы свою крутость показать

    добавлено через 2 часа 13 минут
    panda-34, спасибо большое!
     
  10. HuanKarlos

    HuanKarlos Активный участник

    1.085
    6
    Этот запрос выведет все данные с датой приема, но ни как не последенного приема
     
  11. Mikola

    Mikola Активный участник

    503
    0
    HuanKarlos, ну у меня он работает как надо ;)
     
  12. HuanKarlos

    HuanKarlos Активный участник

    1.085
    6
    Ни чего удивительного. Я знаю как у нас составляют техническое задание :) . Говорят одно подразумевая другое, приходиться переделывать несколько раз.
     
  13. Devillio

    Devillio Активный участник

    1.198
    2
    А можно ламерский вопрос?

    SELECT Больные.Данные_о_них, (SELECT Max(Приемы.Дата_приема) from Приемы where Больные.id = Приемы.id)
    FROM Больные

    Этот вариант хуже варианта с GROUP BY?