![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Уникальные записи с заковыркой
wed © (2002-09-19 13:30:00)Есть поля Z и W. Z - наименование
W - признак склада если "*", то склад №1, если пусто, то склад №2
Как сделать запрос, чтобы выводились уникальные наименования и признак склада с условием, если есть товар на обоих складах, то ставился любой другой признак. Пробовал и группировку и Distinct - всегда выводится два наименования.
Спасибо.
Max Zyuzin (2002-09-19 13:50:00) [1]Ой... я перепутал вместо join конечно надо писать union ;) О чем думал...
Johnmen (2002-09-19 13:49:00) [2]SELECT Z,"№1 " AS Fld FROM Tbl
WHERE W="*"
GROUP BY Z
HAVING COUNT(Z)<2
UNION
SELECT Z,"№2 " AS Fld FROM Tbl
WHERE (W IS NULL) OR (W="")
GROUP BY Z
HAVING COUNT(Z)<2
UNION
SELECT Z,"оба" AS Fld FROM Tbl
GROUP BY Z
HAVING COUNT(Z)>=2
Max Zyuzin (2002-09-19 13:48:00) [3]select z, "ы" from mytab
where w = "*"
and z in (select z from mytab where w=" ")
join
select z, w from mytab
where w = "*"
and z not in (select z from mytab
where w = "*"
and z in (select z from mytab where w=" ")
)
join
select z, w from mytab
where w = " "
and z not in (select z from mytab
where w = "*"
and z in (select z from mytab where w=" ")
)
О как я наваял :)
ЮЮ (2002-09-19 13:45:00) [4]>как субд если ораклий
Под ораклий ещё третий склад не постоили
ЮЮ (2002-09-19 13:39:00) [5]> если пусто, то склад №2
В склад №2 надо взять другого кладовщика, менее вороватого :-)
И молить бога, чтобы у заказчика не появился склад №3 :-))
Дикий_мужчина (2002-09-19 13:33:00) [6]как субд если ораклий используй decode(поле, чему равно, что выводить, .....)дальше можно ссотавить список значений и то что им соответствует для вывода