![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выборка единственной строки из многих.... [D5, IB5.x]
БАА © (2003-03-15 17:50:00)Здравствуйте, уважаемые...Задача собственно в следующем: необходимо выбрать одну строку из многих. Для понятности, пример:
Клиенты Прайс-листы:
ID NAME FIRMID NAME
1 Он 1 Кастрюль
2 Она 1 Кастрюля
3 Оно 1 Кастрюлька
Необходимо получить список из клиентов, каждому клиенту где соответствует ОДНА позиция с прайс-листа. Надеюсь я понятно выразился.
ЮЮ (2003-03-19 06:12:00) [1]Select Firms.ID, Firms.NAME, Max(Prices.NAME) OnePriceName
FROM Firms LEFT JOIN Prices on Firms.ID = Prices.FIRMID
GROUP BY Firms.ID, Firms.NAME
SORT BY Firms.NAME
Alexander Vasjuk (2003-03-18 14:13:00) [2]Сначала добавить в клиетнты и прайсы по полю номер, заполнить их разными новыми генераторами, потом выбрать клиентов и праысы с одинаковыми номерами
Alexandr B. (2003-03-17 08:32:00) [3]еще вроде там есть first
Или непример если поле ID - уникально то
select *
from mytable where id = (select min(id) from mytable)
Alexandr (2003-03-16 08:59:00) [4]ну вообще, впоследних версиях твой top есть.
а так, хп тебе поможет
БАА (2003-03-16 08:33:00) [5]Ну пардон великодушно...Как шмог, так и донес.
Результат должен быть таким:
Он "Кастрюль"(либо Кастрюля, либо Кастрюлька, неважно)
Она ""
Оно ""
Что-то типа аналога top в MSSQL, только применительно к IB
PrettyFly (2003-03-15 18:14:00) [6]Чем больше читаю твою задачу, тем лучше понимаю, что понять это правильно просто невозможно... учись формулировать мысли ;)
PrettyFly (2003-03-15 18:10:00) [7]Как я понял результат должен быть:
1 "Он" "Кастрюль, Кастрюля, Кастрюлька"
2 "Она" ""
3 "Оно" ""
Так?
Johnmen (2003-03-15 18:07:00) [8]Если правильно понял, то :
SELECT K.NAME FROM Клиенты K, Прайс-листы P
WHERE K.ID=P.FIRMID
GROUP BY K.NAME
HAVING COUNT(P.FIRMID)=1