Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не могу нормально побороть процедуру / 2 сообщений из 2, страница 1 из 1
10.11.2001, 15:32
    #32016797
AMPeshkin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу нормально побороть процедуру
Написал программу для ЖЭКа (учёт прописки, тарифов, оплат, льгот, и т.п.) на 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
...
Рейтинг: 0 / 0
10.11.2001, 16:46
    #32016798
AL_R
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу нормально побороть процедуру
SELECT @Registered = 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
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не могу нормально побороть процедуру / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]