Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Код хранимой процедуры sql  [new]
8sergik8
Member

Откуда:
Сообщений: 7
Решил попробовать с помощью Экселя 2007 облегчить жизнь серверу.
Для этого в Экселе реализовал сводную таблицу и с помощью макроса хочу ее обновлять с 1с. 1с 77 комплекс крутиться на SQL 2005.
Вопрос в том, что я не силен в хранимых процедурах, Помогите кто чем может желательно кодом ХП например: как должен выглядеть код ХП для того что бы я получал в эсель продажи за период. Нужен примерный код понятно что поля с таблиц у меня свои.

кусок макроса:

ActiveSheet.Range("..").Value = "... " cnn.mySP_Sales
ActiveSheet.Range("..").Value = "... " Sheets("...").PivotTables("...").PivotCache.Refresh
22 мар 12, 14:00    [12295033]     Ответить | Цитировать Сообщить модератору
 Re: Код хранимой процедуры sql  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
автор
как должен выглядеть код ХП для того что бы я получал в эсель продажи за период. Нужен примерный код понятно что поля с таблиц у меня свои.
примерно так
Create procedure XXXXX
(
 @datefrom datetime,
 @dateto datetime
)
AS
SELECT ....
FROM...
WHERE ...
 AND ... >= @datefrom
 AND ... <= @dateto

Какой вопрос такой ответ :)

Модератор: Тема перенесена из форума "ERP и учетные системы".


Сообщение было отредактировано: 22 мар 12, 14:30
22 мар 12, 14:27    [12295363]     Ответить | Цитировать Сообщить модератору
 Re: Код хранимой процедуры sql  [new]
8sergik8
Member

Откуда:
Сообщений: 7
LSV,

Спасибо за быстрый ответ, может есть код более развернутый. Какой то практически используемый.
22 мар 12, 16:11    [12296402]     Ответить | Цитировать Сообщить модератору
 Re: Код хранимой процедуры sql  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
8sergik8
может есть код более развернутый


Ну а как же, вот он: Рекомендации по оформлению сообщений в форуме.
22 мар 12, 17:25    [12297094]     Ответить | Цитировать Сообщить модератору
 Re: Код хранимой процедуры sql  [new]
8sergik8
Member

Откуда:
Сообщений: 7
SamMan,

Да Вы очень помагли!
22 мар 12, 18:24    [12297666]     Ответить | Цитировать Сообщить модератору
 Re: Код хранимой процедуры sql  [new]
8sergik8
Member

Откуда:
Сообщений: 7
up
23 мар 12, 18:53    [12304183]     Ответить | Цитировать Сообщить модератору
 Re: Код хранимой процедуры sql  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
8sergik8
up

down...вам дали ссылку
23 мар 12, 18:55    [12304188]     Ответить | Цитировать Сообщить модератору
 Re: Код хранимой процедуры sql  [new]
8sergik8
Member

Откуда:
Сообщений: 7
Knyazev Alexey,

Вы про эту:
Рекомендации по оформлению сообщений в форуме. ???
Прочитал.
И где там ответ на мой вопрос?
25 мар 12, 16:52    [12310345]     Ответить | Цитировать Сообщить модератору
 Re: Код хранимой процедуры sql  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
8sergik8, а где у вас вопрос в стартовом посте? Вижу только набор буков и утвердительные предложения, без понимания смысла.
25 мар 12, 16:58    [12310365]     Ответить | Цитировать Сообщить модератору
 Re: Код хранимой процедуры sql  [new]
qwerty112
Guest
8sergik8
Knyazev Alexey,

Вы про эту:
Рекомендации по оформлению сообщений в форуме. ???
Прочитал.
И где там ответ на мой вопрос?

х-ра се ! ты это серьёзно ??

8sergik8
Решил попробовать с помощью Экселя 2007 облегчить жизнь серверу.
Для этого в Экселе реализовал сводную таблицу и с помощью макроса хочу ее обновлять с 1с. 1с 77 комплекс крутиться на SQL 2005.
Вопрос в том, что я не силен в хранимых процедурах, Помогите кто чем может желательно кодом ХП например: как должен выглядеть код ХП для того что бы я получал в эсель продажи за период. Нужен примерный код понятно что поля с таблиц у меня свои.

кусок макроса:

ActiveSheet.Range("..").Value = "... " cnn.mySP_Sales
ActiveSheet.Range("..").Value = "... " Sheets("...").PivotTables("...").PivotCache.Refresh

ну на

create proc mySP_Sales
     @dtStart datetime,
     @dtFinish datetime
as
begin
  -- ХП для того что бы я получал в эсель продажи за период
end
25 мар 12, 16:58    [12310368]     Ответить | Цитировать Сообщить модератору
 Re: Код хранимой процедуры sql  [new]
londinium
Member

Откуда: Киев
Сообщений: 1199
CREATE PROC GetYearsSales
@InStartDate DATE,
@InEndDate  DATE
AS
 BEGIN 
 --ПРИКРУТИТЬ ОБРАБОТКУ ДАТ ПО ВКУСУ
 SELECT * FROM [ПРОДАЖИ] WHERE [ДАТА ПРОДАЖИ]>=@InStartDate AND
[ДАТА ПРОДАЖИ]<=@InEndDate
 END
GO
25 мар 12, 20:48    [12311048]     Ответить | Цитировать Сообщить модератору
 Re: Код хранимой процедуры sql  [new]
8sergik8
Member

Откуда:
Сообщений: 7
londinium,

Спасибо.

1. "-ПРИКРУТИТЬ ОБРАБОТКУ ДАТ ПО ВКУСУ" - можно примерчик ибо вкуса по этому у меня еще нет).
2. FROM [ПРОДАЖИ] - где продажи это таблица продаж? (dbo....)
3. Как я понимаю применительно к 1с таблицу продаж надо связывать с справочником ТМЦ так как в таблице продаж у меня ИД Тмц а не их названия?
25 мар 12, 21:13    [12311125]     Ответить | Цитировать Сообщить модератору
 Re: Код хранимой процедуры sql  [new]
londinium
Member

Откуда: Киев
Сообщений: 1199
CREATE PROC GetYearsSales
@InStartDate DATE,
@InEndDate  DATE
AS
 BEGIN 
SELECT @InStartDate=CAST(DATENAME(year,@InStartDate) AS DATE); --ПЕРВОЕ ЧИСЛО ГОДА ---(ВЗЯТО ИЗ FAQ)
SELECT @InEndDate=CAST(DATENAME(YEAR,@InEndDate)+'1231' AS DATE);--ПОСЛЕНИЙ ДЕНЬ 
--ГОДА (ВЗЯТО ИЗ FAQ)

DECLARE @InStartYear SMALLINT;
DECLARE @InEndYear   SMALLINT;

SELECT @InStartYear=YEAR(@InStartDate);
SELECT @InEndYear=YEAR(@InEndDate);

--ПРОВЕРИМ, ЧТОБЫ ПЕРВОЕ И ПОСЛЕДНЕЕ ЧИСЛО ТОНОСИЛИСЬ К ОДНОМУ ГОДУ
--ЕСЛИ НЕТ, ТО РУГАЕМСЯ
IF(@InStartYear<>@InEndYear)
  BEGIN
   RETURN -100;
  END

 SELECT * FROM [ПРОДАЖИ] WHERE [ДАТА ПРОДАЖИ]>=@InStartDate AND
[ДАТА ПРОДАЖИ]<=@InEndDate
 END
GO


автор
2. FROM [ПРОДАЖИ] - где продажи это таблица продаж? (dbo....)

Она самая :-).

автор
3. Как я понимаю применительно к 1с таблицу продаж надо связывать с справочником ТМЦ так как в таблице продаж у меня ИД Тмц а не их названия?

Если надо отловить продажу воттки за год, то несомненно надо дописать что-то в духе
SELECT * FROM [ПРОДАЖИ] WHERE [ДАТА ПРОДАЖИ]>=@InStartDate AND
[ДАТА ПРОДАЖИ]<=@InEndDate AND ТОВАР_ID IN
(
  SELECT ТОВАР_ID FROM [ТОВАРЫ] WHERE ТОВАР_NAME ='ВОТТКА'
)

Если же выгребаем продажи всего за год, то дописывать не нужно.

Тут второй вопрос возникает - Excel, насколько я знаю, не поддерживает вызовы ХП SQL SERVER, поэтому все это больше похоже на теоретические дебаты
25 мар 12, 22:01    [12311362]     Ответить | Цитировать Сообщить модератору
 Re: Код хранимой процедуры sql  [new]
8sergik8
Member

Откуда:
Сообщений: 7
londinium,

Еще раз спасибо.

Я на просторах инета нашел макрос примерного текста:

Sub ОбновитьТаблицуЭкселя()
Dim cnn As New ADODB.Connection
cnn.ConnectionTimeout = 0
cnn.CommandTimeout = 0
Dim cmd As New ADODB.Command
cnn.Open ConnectionString:="Driver=SQL Server;Server=....;Database=......;Uid=....;Pwd=....."
cmd.Name = "NOfMCommand"
cmd.CommandTimeout = 0
cmd.ActiveConnection = cnn
ActiveSheet.Range("...").Value = "... "
cnn.mySP_Sales
....................................
Исходя из этого я и пытаюсь создать следующее.
по кнопке в экселе запускаеться макрос "ОбновитьТаблицуЭкселя()" и в эселе заполняеться таблица продаж
Товар/Кво/Себестоимость/период
Пока хоть это а там возможно я еще что то смогу прикрутить.
25 мар 12, 23:55    [12311889]     Ответить | Цитировать Сообщить модератору
 Re: Код хранимой процедуры sql  [new]
уТКа
Member

Откуда: Страна дураков и разбитых дорог
Сообщений: 1266
8sergik8,

чтобы делать отчеты есть прекрасная технология Reporting Services которая идет в комплекте с SQL Server, возьмите ее и не трахайте себе головной мозг.
26 мар 12, 16:22    [12315433]     Ответить | Цитировать Сообщить модератору
 Re: Код хранимой процедуры sql  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
уТКа
чтобы делать отчеты есть прекрасная технология Reporting Services которая идет в комплекте с SQL Server, возьмите ее и не трахайте себе головной мозг.
А некоторые избавляются от это фигни, как раз чтоб не тр*%ать себе моск.

Не все йогурты одинаково полезны. ©
26 мар 12, 22:03    [12317542]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить