powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / программка - с запросом
17 сообщений из 17, страница 1 из 1
программка - с запросом
    #34580105
dimakz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть таблица T

Код: plaintext
1.
2.
3.
4.
5.
6.
den num   kolvo
 1        007            5 
 1        006            4 
 2        007            7 
 3        007            8 
 3        006            6 
 4        006            9 

Мне нужно получить, что если по номеру в это день нет ничего, тогда выдать
Код: plaintext
kolvo= 0 
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
den num   kolvo
 1        007            5 
 1        006            4 
 2        007            7 
 2        006            0 
 3        007            8 
 3        006            6 
 4        006            9 
 4        007            0 


я создал другую табличку A - содержит дни 1,2,3.....31

делаю запрос

Код: plaintext
select a.den,b.num,IsNull((select T.Kolvo from T where T.den=a.den and T.num=b.num), 0 ) as Kolvo from a, (select distinct num from t) B

пишит - мног оаргументов....ошибка
как можно сделать запрос или программка, кот, вставляет строки с колво=0, если даты в таблице Т нет в А ?
...
Рейтинг: 0 / 0
программка - с запросом
    #34580775
dimakz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или если испол.прогам.код

SELECT 1
DO WHILE !EOF()
IF dni=den

replace WITH
ENDIF
SKIP
ENDDO

помогите сделать
...
Рейтинг: 0 / 0
программка - с запросом
    #34581212
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если решать "в лоб" без всякой оптимизации, то примерно так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select distinct num from T into cursor tnum && выбираем все виды num
create cursor result(den, num, sum)
for i =  1  to  31 
  select i as den, tnum.num, T.sum from tnum left join T on tnum.num = T.num where T.den = i into cursor tden
  sele result
  append from (dbf('tden'))
endfor
brow
...
Рейтинг: 0 / 0
программка - с запросом
    #34581253
dimakz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ругается на
Код: plaintext
create cursor result(den, num, sum)

ошибка синтаксиса
...
Рейтинг: 0 / 0
программка - с запросом
    #34581314
L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
L
Гость
А может тип надо ещё добавить?
...
Рейтинг: 0 / 0
программка - с запросом
    #34581397
dimakz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
create cursor result(den int, num int, sum int)?????????????????????
...
Рейтинг: 0 / 0
программка - с запросом
    #34581427
L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
L
Гость
что ругается?
...
Рейтинг: 0 / 0
программка - с запросом
    #34581441
L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
L
Гость
create cursor result(den i(6), num i(6), sum i(6)) %)
...
Рейтинг: 0 / 0
программка - с запросом
    #34581485
dimakz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
два вопроса:
1) почему тут испол-ся create cursor result(den, num, sum )
sum- ?
может kolvo????

2) если sum поменяю на kolvo, то выдет результат, как в таблице T......

а где
Код: plaintext
1.
 2        006            0 
 4        007            0 
их нет
...
Рейтинг: 0 / 0
программка - с запросом
    #34581671
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и правда ошибся :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select distinct num from T into cursor tnum && выбираем все виды num
create cursor result(den i, num i, kolvo i)
for i =  1  to  31 
  select * from T where T.den = i into cursor T2
  select i as den, tnum.num, T2.kolvo from tnum left join T2 on tnum.num = T2.num into cursor tden
  sele result
  append from (dbf('tden'))
endfor
brow
...
Рейтинг: 0 / 0
программка - с запросом
    #34582853
dimakz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на это
Код: plaintext
append from (dbf('tden'))
выдает ошибку -
Код: plaintext
Field Kolvo does not accept null values
что это означает
...
Рейтинг: 0 / 0
программка - с запросом
    #34582982
dimakz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ап
...
Рейтинг: 0 / 0
программка - с запросом
    #34583547
SindoMeon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
create cursor result(den i, num i, kolvo i NULL)
...
Рейтинг: 0 / 0
программка - с запросом
    #34583726
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Замени на
Код: plaintext
 select i as den, tnum.num, nvl(T2.kolvo,  0 ) as kolvo from tnum left join T2 on tnum.num = T2.num into cursor tden
...
Рейтинг: 0 / 0
программка - с запросом
    #34583755
dimakz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, работает и это
Код: plaintext
create cursor result(den i, num i, kolvo i NULL)
и это
Код: plaintext
select i as den, tnum.num, nvl(T2.kolvo,  0 ) as kolvo from tnum left join T2 on tnum.num = T2.num into cursor tden


да вот есть еще вопрос по типам:
create cursor result (den i, num i, kolvo i)

у мня появилось еще одно поле, где в таблице Т, поле d тип стоит numeric 10 и после запятой "," еще 2 знака...

теперь добавляю тип в
create cursor result (den i, num i, kolvo i, d n (10) ) - то выдает тока значение, но без десятичных значений...
как добавить, чтоб были и десят.значения?
...
Рейтинг: 0 / 0
программка - с запросом
    #34583927
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimakz...
как добавить, чтоб были и десят.значения?N(10, 2)
...
Рейтинг: 0 / 0
программка - с запросом
    #34583937
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
N(10, 2) - означает 7 знаков под целую часть ("-" и 6 знаков для отрицательных) 1 знак '.' и 2 знака под дробную часть
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / программка - с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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