powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как выгрузить информацию ...?
17 сообщений из 17, страница 1 из 1
Как выгрузить информацию ...?
    #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
Как выгрузить информацию ...?
    #32215302
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно использовать ХП.
...
Рейтинг: 0 / 0
Как выгрузить информацию ...?
    #32215317
Bohdan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты прав, нужно,
как написать саму ХП, чтобы задача была решена
у меня получается, так что процедура выгружает сначала одно поле, а потом другое, с верху без пропусков к томуже еще и удваевается
...
Рейтинг: 0 / 0
Как выгрузить информацию ...?
    #32215321
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давай текст процедуры
...
Рейтинг: 0 / 0
Как выгрузить информацию ...?
    #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
Как выгрузить информацию ...?
    #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
Как выгрузить информацию ...?
    #32215376
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я чего не понял, но по-моему в задании было написано одно(см. 1 сообщение в теме), а в процедуре вообще не то. Можно по-подробнее задание в терминах имен переменных процедуры?
...
Рейтинг: 0 / 0
Как выгрузить информацию ...?
    #32215394
Bohdan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я немного упростил,
мне нужно понять смысл, как заливать информ с пропусками в строках
...
Рейтинг: 0 / 0
Как выгрузить информацию ...?
    #32215406
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я же привел пример ....
...
Рейтинг: 0 / 0
Как выгрузить информацию ...?
    #32215420
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Dnico
Я так понял, что пример не совсем то, что нужно

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

P.S. Ничего, что я сказал мы ?
...
Рейтинг: 0 / 0
Как выгрузить информацию ...?
    #32215421
Bohdan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dnico
я пробую, результат сообщю, сенк
...
Рейтинг: 0 / 0
Как выгрузить информацию ...?
    #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
Как выгрузить информацию ...?
    #32215565
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что работает?
...
Рейтинг: 0 / 0
Как выгрузить информацию ...?
    #32215580
Bohdan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у вы ни как
какие еще мысли
где A=c.storeidsrc
где В=c.storeiddst
где С=endsumm
docdate - большой роли не играет(это дата отгрузки)
...
Рейтинг: 0 / 0
Как выгрузить информацию ...?
    #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
Как выгрузить информацию ...?
    #32215615
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон ...

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


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