Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
10.11.2001, 15:32
|
|||
|---|---|---|---|
|
|||
Не могу нормально побороть процедуру |
|||
|
#18+
Написал программу для ЖЭКа (учёт прописки, тарифов, оплат, льгот, и т.п.) на SQL 7, но вот такие дела: -------------------------------------------------------------------------------------------------- -- Процедура возвращает количество прописанных на определённом лицевом счёте на определённую дату -------------------------------------------------------------------------------------------------- CREATE PROCEDURE [sp_GetRegistered] @IDAcc int, @dDate smalldatetime AS BEGIN SET NOCOUNT OFF DECLARE @Registered int -- НЕ РАБОТАЕТ!!! -- ВЫДАЁТ, ЧТО IDPopul - НЕТ ТАКОЙ КОЛОНКИ. НА tdPopul.IDPopul ВЫДАЁТ, ЧТО tdPopul - НЕПРАВИЛЬНЫЙ АЛИАС -- ЧТО ДЕЛАТЬ? САМОЕ ИНТЕРЕСНОЕ, ЧТО ЕСЛИ ЭТО ДЕЛАТЬ НЕ В ТЕЛЕ ПРОЦЕДУРЫ, А ОТДЕЛЬНО, НАПРИМЕР, -- В QUERY ANALYZER, ТО ВСЁ НОРМАЛЬНО РАБОТАЕТ -- SET @Registered = (SELECT COUNT(*) FROM tdPopul WITH(NOLOCK) -- WHERE (SELECT TOP 1 Value FROM tdPint -- WHERE (IDPopul=ID AND IDF=107402 AND tdPint.dDate<=@dDate) -- ORDER BY dDate DESC)=@IDAcc) -- ПРИХОДИТСЯ ИЗГОЛЯТЬСЯ СЛЕДУЮЩИМИ СТРОКАМИ: SELECT IDPopul FROM tdPopul WITH(NOLOCK) WHERE (SELECT TOP 1 Value FROM tdPint WHERE (IDPopul=ID AND IDF=107402 AND tdPint.dDate<=@dDate) ORDER BY dDate DESC)=@IDAcc SET @Registered = @@ROWCOUNT RETURN @Registered -- ЕЩЁ ИНТЕРЕСНО, ЧТО САМА ПО СЕБЕ ЭТА ЖЕ КОНСТРУКЦИЯ -- SELECT COUNT(*) FROM tdPopul WITH(NOLOCK) -- WHERE (SELECT TOP 1 Value FROM tdPint -- WHERE (IDPopul=ID AND IDF=107402 AND tdPint.dDate<=@dDate) -- ORDER BY dDate DESC)=@IDAcc -- РАБОТАЕТ!!! ДАЖЕ В ТЕЛЕ ПРОЦЕДУРЫ. НО СТОИТ ТОЛЬКО ПЕРЕД НЕЙ ПОСТАВИТЬ -- SET @Registered = ..., А ЭТУ КОНСТРУКЦИЮ ЗАКЛЮЧИТЬ В СКОБКИ, ТО НАЧИНАЕТСЯ ЧЁРТИ-ЧТО END ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&mobile=1&tid=1825040]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
79ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
31ms |
get tp. blocked users: |
2ms |
| others: | 263ms |
| total: | 428ms |

| 0 / 0 |
