Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помощь в написании хр. проц. / 2 сообщений из 2, страница 1 из 1
15.08.2001, 07:32
    #32011799
ДиД.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь в написании хр. проц.
Имеется процедура, в которой нужно сформировать sql-выражение и выполнить его, в зависимости от параметра @prinadl
если @prinadl =1 или =2, то берется все sql-выражение, указанное ниже,
если @prinadl =3, то же sql-выражение, но без Where (group by и having должны остаться)
Пошел по пути собирания частей предложения (3 частей), но где-то ошибаюсь при конкатенации. Не буду давать свой вариант - профи подскажут как надо.

Alter Procedure [Для о Реестр накладных отгрузки_ф]
@BegData datetime, @EndData datetime, @prinadl as int
As
SELECT dbo.[Принадлежность номенклатуры].Принадлежность,
dbo.[Накладные отгрузки преформ].[№ накладной],
dbo.[Накладные отгрузки преформ].Дата,
dbo.Контрагенты.Контрагент,
dbo.[Типы преформ].[Тип преформы],
dbo.[Параметры номенклатуры].[Параметр номенклатуры],
SUM(dbo.[Отгружаемая продукция].[Вид упаковки] * dbo.[Отгружаемая продукция].[Количество в коробе]
* dbo.[Отгружаемая продукция].Количество) AS [Количество преформ],
SUM(dbo.[Отгружаемая продукция].[Вид упаковки] * dbo.[Отгружаемая продукция].[Количество в коробе]
* dbo.[Отгружаемая продукция].Количество *dbo.[Отгружаемая продукция].[Цена]) AS [Сумма]
FROM dbo.[Накладные отгрузки преформ] INNER JOIN
dbo.[Отгружаемая продукция] ON
dbo.[Накладные отгрузки преформ].[Код накладной] = dbo.[Отгружаемая продукция].[Код накладной]
INNER JOIN
dbo.[Коды преформ] ON
dbo.[Отгружаемая продукция].[Код преформы] = dbo.[Коды преформ].[Код преформы]
INNER JOIN
dbo.[Типы преформ] ON
dbo.[Коды преформ].КодТипПреформы = dbo.[Типы преформ].Код
INNER JOIN
dbo.[Параметры номенклатуры] ON
dbo.[Коды преформ].КодЦветПреформы = dbo.[Параметры номенклатуры].Код
INNER JOIN
dbo.Контрагенты ON
dbo.[Накладные отгрузки преформ].[Код контрагента] = dbo.Контрагенты.[Код контрагента]
INNER JOIN
dbo.[Принадлежность номенклатуры] ON
dbo.[Накладные отгрузки преформ].[Код принадлежность] = dbo.[Принадлежность номенклатуры].[Код принадлежность]
WHERE (dbo.[Накладные отгрузки преформ].[Код принадлежность] =@prinadl)
GROUP BY dbo.[Накладные отгрузки преформ].[№ накладной], dbo.[Накладные отгрузки преформ].Дата,
dbo.Контрагенты.Контрагент,
dbo.[Типы преформ].[Тип преформы],
dbo.[Параметры номенклатуры].[Параметр номенклатуры],
dbo.[Принадлежность номенклатуры].Принадлежность
HAVING (dbo.[Накладные отгрузки преформ].Дата BETWEEN @BegData AND @EndData)
...
Рейтинг: 0 / 0
15.08.2001, 07:59
    #32011804
Павел
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь в написании хр. проц.
Нужно просто дописать условие в WHERE. Совсем недавно тема обсуждалась: http://www.sql.ru/cgi-bin/UltraBoard/UltraBoard.pl?Action=ShowPost&Board=mssql&Post=2013
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помощь в написании хр. проц. / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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