| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MS SQL Server > Сложный запрос |
| Автор: uranpro 2.7.2008, 15:48 | ||
| есть таблица v_DublePrice с полями dpMID, dpPID, dpPriceID, dpPrice MID- модель, PID- размерная линейка PriceID- ссылка на прайс0лист, по которому берется Price есть такое правило(1): для всех PID по 1 MID и по 1 PriceID цены должны быть равны. задача: вывести все MID со всеми PID, с ценами(Price) по PriceID, где хотябы на одном поле не соблюдается правило (1). надеюсь, задача понятна. можно сделать примерно так, но я думаю есть решение поумнее.
помогите плс, |
| Автор: uranpro 2.7.2008, 18:14 | ||
кому интересно |
| Автор: Deniz 3.7.2008, 05:44 | ||
т.е. про HAVING не слышал.
|
| Автор: uranpro 3.7.2008, 10:08 |
| оО!! чет я не догадался, сложный день вчера был^^ спасибо Добавлено через 1 минуту и 4 секунды мне нужно в подписи написать "не ищу легких решений" гы)) |
| Автор: uranpro 3.7.2008, 10:35 |
| Deniz, этот запрос не выдает никаких данных( и открывается в 2 раза медленнее чем мой |
| Автор: uranpro 3.7.2008, 12:20 |
| Deniz, а разница межу ними какая? интересно.. быстрее работать будет ? тут очень проблемный сервер, постоянно загружен на полную. очень много информации. |
| Автор: Deniz 3.7.2008, 13:20 |
| между кем и кем? Могу сказать точно, что exists лучше чем count(*) > 0, потому как exists заканчивает поиск после первой найденной записи, а count(*) ищет все записи. По идее запросы твой(с count(*) >0) и мой(с having) должны выполняться примерно одинаково по времени. |
| Автор: uranpro 3.7.2008, 18:13 |
| на нашем сервере это не так ^^ спасибо! |