powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не могу нормально побороть процедуру
2 сообщений из 2, страница 1 из 1
Не могу нормально побороть процедуру
    #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
Не могу нормально побороть процедуру
    #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
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не могу нормально побороть процедуру
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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