Форум: "Начинающим";
Текущий архив: 2010.02.14;
Скачать: [xml.tar.bz2];
ВнизПомогите с запросом. Поля и совокупные х-ки в одном запросе ... Найти похожие ветки
← →
s_t_d (2009-12-16 17:11) [0]Уважаемые мастера, пожалуйста подскажите направление поиска.
Есть 2 таблицы:
patients(patid, lastname) - табл. пациентов;
labres(id, patid, date1, val1) - табл. анализов.
Как сформировать запрос к двум таблицам, который формирует фамилии пац. и соответствующие им анализы ясно, например так:
select patients.patid, patients.lastname, labres.val1
from patients
inner join labres on (patients.patid = labres.patid)
where (
labres.date1 > "01.01.2008"
and labres.val1 > 0
).
А вот как сформировать, запрос, результатом которого будут также
patients.patid, patients.lastname и количество записей во второй таблице, удовлетворяющее тем же критериям не ясно...
Прочитал про GROUP BY, но как воспользоваться в случае двух таблиц? И вообще туда-ли двигаюсь?
СУБД - FB-1.5.
Заранее благодарю.
← →
Nucer (2009-12-16 19:18) [1]Не уверен (не знаю что такое FB-1.5), но скорее всего так:
SELECT patients.patid, patients.lastname, COUNT(*)
FROM patients LEFT JOIN labres ON patients.patid = labres.patid
WHERE labres.date1 > "01.01.2008" AND labres.val1 > 0
GROUP BY patients.patid
Может быть, что и так:SELECT P.patid, P.lastname, COUNT(*) AS cnt
FROM patients P LEFT JOIN labres L ON P.patid = L.patid
WHERE L.date1 > "01.01.2008" AND L.val1 > 0
GROUP BY P.patid ORDER BY cnt DESC
← →
Сергей М. © (2009-12-16 19:42) [2]
> совокупные х-ки
Стесняюсь спросить - а это что ?
Про это можно говорить при дамах ?
← →
s_t_d (2009-12-17 00:07) [3]>Nucer
Спасибо за внимание.
1)FB-1.5 - Firebird 1.5
2)Предложенные вами варианты не проходят. Я понял так, что некорректное использование GROUP BY
>Сергей М. © (16.12.09 19:42) [2]
Извините, если невольно оскорбил ваш слух, но я не увидел в этом словосочетании чего-либо предосудительного... По базовому образованию далек от IT области, но иногда приходится сочинять простейшие запросы, поэтому и обратился в разде "Начинающим".
Осваивал по книге (нашел на полке у наших спецов, коих не допросишься) "Все о DELPHI. Язык SQL в Delphi5. А.Я. Архангельский. Глава 2. Основы языка SQL. Параграф 2.2.2. Совокупные характеристики, где речь и идет о понятиях count, min, max, ...". Так что по этому вопросу скорее к автору книги.
А вот как все-таки составить такой запрос ?
← →
Сергей М. © (2009-12-17 00:10) [4]
> Все о DELPHI. Язык SQL в Delphi5. А.Я. Архангельский
Понятно.
Дальше можно не конкретизировать)
← →
s_t_d (2009-12-17 00:16) [5]>Сергей М. © (17.12.09 00:10) [4]
А что понятно-то?
Если можете помочь - подскажите, где прочесть, а вещать полунамеками не к чему...
← →
Сергей М. © (2009-12-17 00:30) [6]
> что понятно-то?
Скажу прямо - г-н Архангельский и его "творчество" здесь (и не только здесь), мягко говоря, не в почете. И есть за что.
← →
s_t_d (2009-12-17 00:35) [7]>Сергей М. © (17.12.09 00:30) [6]
Если можете, пожалуйста подскажите, где прочесть...
← →
Sergey13 © (2009-12-17 10:40) [8]> [3] s_t_d (17.12.09 00:07)
> 2)Предложенные вами варианты не проходят. Я понял так, что
> некорректное использование GROUP BY
Предпололожение не лишено основания. При группировке в Group by должны быть перечислены ВСЕ поля, перечисленные в select, кроме агрегатных.
> [7] s_t_d (17.12.09 00:35)
> Если можете, пожалуйста подскажите, где прочесть...
В любом учебние по SQL. Можно поискать по фамилии Грубер (или Грабер).
← →
s_t_d (2009-12-17 12:34) [9]>[8]Seegey13. Большое спасибо за конструктивную помощь.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.02.14;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c