powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с запросом.
9 сообщений из 9, страница 1 из 1
Помогите с запросом.
    #35396957
tkandrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу помочь з запросом . С двух таблиц нужно на выходе получить одну. В первой содержатся идентификатор человечка,даты и нулевые значения суммы1. Во второй - идентификатор человечка,даты(их меньше, но обязательно встерчаются в первой табл.) и ненулевая Сумма1. Как получить на выходе таблицу : идентификатор, дата(все даты), сумма1(нулевые и ненулевые значения)? Заранее спасибо.
...
Рейтинг: 0 / 0
Помогите с запросом.
    #35396992
Для таких случаев неплохо бы скрипт создания таблиц привести. Или это надо сделать наи=м в качестве домашнего задания?
...
Рейтинг: 0 / 0
Помогите с запросом.
    #35397024
tkandrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходящий.Для таких случаев неплохо бы скрипт создания таблиц привести. Или это надо сделать наи=м в качестве домашнего задания?
Извольте.Конкретно.На входе имеем начальную дату (например, 01.08.2006)и колличество месяцев(пусть шесть).
Нужно с таблицы-архива начиная с начальной даты за каждый последующий месяц отобрать суммы дохода. Но если в архиве за какой-то месяц данных не окажется, надо всё равно получит сумму в ноль. Бухгалтерия, знаете ли...
...
Рейтинг: 0 / 0
Помогите с запросом.
    #35397054
tkandrey проходящий.Для таких случаев неплохо бы скрипт создания таблиц привести. Или это надо сделать наи=м в качестве домашнего задания?
Извольте.Конкретно.
Странные представления о конкретике.
Поясняю. Скриптом создания и заполнения таблиц является примерно такой текст:

Код: plaintext
1.
2.
Create cursor c1 (f1 i, f2 cName)

Insert into c1 values ( 1 , 'Раз')
...
Рейтинг: 0 / 0
Помогите с запросом.
    #35397075
tkandrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CREATE CURSOR zarpl (tabn n(4),a_data d,zrp n(20,4),insh n(20,4))-это итоговая таблица.
SELECT arhiv.a_tn as tabn,arhiv.a_data,sum(arhiv.a_summa) as zrp;
FROM arhiv WHERE arhiv.a_tn=tn AND arhiv.a_data between d_t(1) AND d_t(km);
AND arhiv.a_wnu NOT in (4,7,8,9,12,33,35,38,42,45,52) AND arhiv.a_wnu>1 AND arhiv.a_wnu<61;
ORDER BY arhiv.a_data GROUP BY arhiv.a_data;
INTO CURSOR zp NOFILTER READWRITE - это отбираем из архива.
km-колличество месяцев, d_t - масив дат, которые циклом загоняю в zarpl.
d_t(i)=CTOD('01.'+STR(MONTH(dt+31*(i-1)))+'.'+STR(YEAR(dt+31*(i-1)))) - это так определяю следующую дату.
...
Рейтинг: 0 / 0
Помогите с запросом.
    #35397157
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>tkandrey
> ... Как получить на выходе таблицу : ...
Конструкция < tbl_1 LEFT JOIN tbl_2 ON tbl_1.человечка=tbl_2.человечка AND tbl_1.даты=tbl_2.даты> не подойдет для Вашего случая ?

С уважением, Владимир
...
Рейтинг: 0 / 0
Помогите с запросом.
    #35397281
tkandrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВМоисеев>tkandrey
> ... Как получить на выходе таблицу : ...
Конструкция < tbl_1 LEFT JOIN tbl_2 ON tbl_1.человечка=tbl_2.человечка AND tbl_1.даты=tbl_2.даты> не подойдет для Вашего случая ?

С уважением, Владимир

Есть в первой таблице весь набор дат, а во второй - только часть , а нужно на выходе иметь весь диапазон дат
...
Рейтинг: 0 / 0
Помогите с запросом.
    #35397368
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю, что то наподобие этого должно работать :)
Код: plaintext
1.
2.
3.
4.
5.
select c1.date, c1.klient, sum(iif(isnull(c2.sum), 0 ,c2.sum)) as sumKlient
from tableKlientDate c1
left join tableKlientSum c2
on c1.date=c2.date and c1.klient=c2.klient
group by c1.date, c1.klient
...
Рейтинг: 0 / 0
Помогите с запросом.
    #35397455
tkandrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GoshaSЯ думаю, что то наподобие этого должно работать :)
Код: plaintext
1.
2.
3.
4.
5.
select c1.date, c1.klient, sum(iif(isnull(c2.sum), 0 ,c2.sum)) as sumKlient
from tableKlientDate c1
left join tableKlientSum c2
on c1.date=c2.date and c1.klient=c2.klient
group by c1.date, c1.klient

А ведь работает!!! Спасибо!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с запросом.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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