Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как выгрузить информацию ...? / 17 сообщений из 17, страница 1 из 1
23.07.2003, 11:35
    #32215298
Bohdan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выгрузить информацию ...?
Привет всем!
Передо мной стоит задача выгрузить данные из таблици в ексель.
Щас объяснь все по порядку
есть table1,
где поле А - код склада,
B - код склада_1,
С - сумма,

table1
A B C
_______________________________
135 null 12.00
136 100 13.00
133 null 167.00
134 100 17.00
165 100 16.00
156 null 18.00
165 null 11.00
нужно, чтобы в итоге в формирования запроса или процедуры эта информация выглядила так:
где Х - код склада(table1 А) и кодсклада_1(table В),
Y - информация, где значения поля В table1 = null,
Z - информация, где значение поля В table1 = 100,

X Y Z
_______________________________
135 12.00 ----
100 ----- 13.00
133 167.00 ----
100 ----- 17.00
100 ----- 16.00
156 18.00 -----
165 11.00 -----

примерно вот так,
буду рад любым намекам, сенк
...
Рейтинг: 0 / 0
23.07.2003, 11:38
    #32215302
Dnico
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выгрузить информацию ...?
Нужно использовать ХП.
...
Рейтинг: 0 / 0
23.07.2003, 11:44
    #32215317
Bohdan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выгрузить информацию ...?
ты прав, нужно,
как написать саму ХП, чтобы задача была решена
у меня получается, так что процедура выгружает сначала одно поле, а потом другое, с верху без пропусков к томуже еще и удваевается
...
Рейтинг: 0 / 0
23.07.2003, 11:46
    #32215321
Timujin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выгрузить информацию ...?
Давай текст процедуры
...
Рейтинг: 0 / 0
23.07.2003, 11:50
    #32215329
Dnico
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выгрузить информацию ...?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
FOR SELECT FROM TABLE1 INTO :A, :B, :C DO BEGIN

  X = A;
  Z = C; 

  IF (B IS NULL) THEN BEGIN
    Y = C;
    Z = NULL;
  END ELSE BEGIN
    X = B;
    Y = NULL;
  END

  SUSPEND;

END
...
Рейтинг: 0 / 0
23.07.2003, 11:55
    #32215339
Bohdan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выгрузить информацию ...?
CREATE PROCEDURE SPRDOCCOMMONGRUPIRATION_A (
STARTDATE DATE,
ENDDATE DATE)
RETURNS (
DOCDATE_A DATE,
ENDSUMM_A NUMERIC(15,2),
MAINSUMM_A NUMERIC(15,2),
ISRETURN_A SMALLINT,
STOREIDDST_A SMALLINT,
STOREIDSRC_A SMALLINT,
BUYPRICEENDSUMM_a NUMERIC(15,2),
DOCDATE DATE,
ENDSUMM NUMERIC(15,2),
MAINSUMM NUMERIC(15,2),
ISRETURN SMALLINT,
STOREIDDST SMALLINT,
STOREIDSRC SMALLINT,
BUYPRICEENDSUMM NUMERIC(15,2))
AS
begin
for
select C.DocDate,
C.EndSumm,
c.mainsumm,
c.isreturn,
c.storeiddst,
c.storeidsrc,
c.buypriceendsumm
from DocCommon C
where c.storeiddst !=100
and C.storeiddst is not null
and C.DocDate >= :StartDate
and C.DocDate <= :EndDate
into :DocDate_a,
:EndSumm_a,
:mainsumm_a,
:isreturn_a,
:storeiddst_a,
:storeidsrc_a,
:buypriceendsumm_a
do
begin
select C.DocDate,
C.EndSumm,
c.mainsumm,
c.isreturn,
c.storeiddst,
c.storeidsrc,
c.buypriceendsumm
from DocCommon C
where c.storeidsrc !=100
and C.storeidsrc is not null
and C.DocDate >= :StartDate
and C.DocDate <= :EndDate
into :DocDate,
:EndSumm,
:mainsumm,
:isreturn,
:storeiddst,
:storeidsrc,
:buypriceendsumm;

suspend;
end
end
...
Рейтинг: 0 / 0
23.07.2003, 12:10
    #32215376
Timujin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выгрузить информацию ...?
Может я чего не понял, но по-моему в задании было написано одно(см. 1 сообщение в теме), а в процедуре вообще не то. Можно по-подробнее задание в терминах имен переменных процедуры?
...
Рейтинг: 0 / 0
23.07.2003, 12:18
    #32215394
Bohdan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выгрузить информацию ...?
я немного упростил,
мне нужно понять смысл, как заливать информ с пропусками в строках
...
Рейтинг: 0 / 0
23.07.2003, 12:22
    #32215406
Dnico
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выгрузить информацию ...?
Я же привел пример ....
...
Рейтинг: 0 / 0
23.07.2003, 12:29
    #32215420
Timujin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выгрузить информацию ...?
2 Dnico
Я так понял, что пример не совсем то, что нужно

2 Bohdan
я немного упростил
Не надо упрощать. Мы не поймем, что конкретно тебе нужно.

P.S. Ничего, что я сказал мы ?
...
Рейтинг: 0 / 0
23.07.2003, 12:30
    #32215421
Bohdan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выгрузить информацию ...?
Dnico
я пробую, результат сообщю, сенк
...
Рейтинг: 0 / 0
23.07.2003, 13:07
    #32215522
Bohdan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выгрузить информацию ...?
Dnico
ошибка такого плана,
ivali token
dynamic SQL error
SQl error code =-104
unexpected and of command
а, это моя новая процедура

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
CREATE PROCEDURE SPRDOCCOMMON_G(
startdate date,
enddate date)
RETURNS (
    x SMALLINT,
    y numeric( 15 , 2 ),
    z NUMERIC( 15 , 2 ))
AS
   begin
      for
       select c.docdate,
              c.storeidsrc,
              c.storeiddst,
              C.EndSumm
         from DocCommon C
         where c.docdate >= startdate
           and c.docdate <= enddate
           into :x,
                 :y,
                 :z
            do
              begin
                c.storeidsrc = x;
                c.endsumm = z;
            IF (c.storeiddst IS NULL) THEN BEGIN
               y = c.endsumm;
               z = null;
            END ELSE BEGIN
              x = c.storeiddst;
              y = null;
           end

    suspend;
end
...
Рейтинг: 0 / 0
23.07.2003, 13:21
    #32215565
Dnico
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выгрузить информацию ...?
И что работает?
...
Рейтинг: 0 / 0
23.07.2003, 13:28
    #32215580
Bohdan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выгрузить информацию ...?
у вы ни как
какие еще мысли
где A=c.storeidsrc
где В=c.storeiddst
где С=endsumm
docdate - большой роли не играет(это дата отгрузки)
...
Рейтинг: 0 / 0
23.07.2003, 13:46
    #32215611
Dnico
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выгрузить информацию ...?
ВОТ ТАК ДОЛЖНО БЫТЬ И РАБОТАТЬ !

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
CREATE PROCEDURE SPRDOCCOMMON_G (
    STARTDATE DATE,
    ENDDATE DATE)
RETURNS (
    X SMALLINT,
    Y NUMERIC( 15 , 2 ),
    Z NUMERIC( 15 , 2 ))
AS
DECLARE VARIABLE DT DATE;
BEGIN
  FOR SELECT c.docdate, c.storeidsrc, c.storeiddst, C.EndSumm
      FROM DocCommon C
      WHERE c.docdate >= startdate AND c.docdate <= enddate
      INTO :dt :x, :y, :z DO BEGIN
        IF (x IS NULL) THEN BEGIN
          y = z;
          z = NULL;
        END ELSE BEGIN
          x = y;
          y = NULL;
        END
    SUSPEND;
  END
END
...
Рейтинг: 0 / 0
23.07.2003, 13:48
    #32215615
Dnico
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выгрузить информацию ...?
Пардон ...

...
IF (y IS NULL) THEN BEGIN
...
...
Рейтинг: 0 / 0
23.07.2003, 13:59
    #32215641
Bohdan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выгрузить информацию ...?
похоже что-то получилось на тестовой процедуре,
теперь попробую на ваять в рабочей базе
сенк Dnico , сенк всем
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как выгрузить информацию ...? / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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