Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Знатокам SQL!!! / 10 сообщений из 10, страница 1 из 1
27.03.2010, 20:42
    #36546416
maximijk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатокам SQL!!!
Проблема следующая: предположим есть следующие таблицы:
1. исполнения должностей i (i.rn, i.действуетС.....и проч)
2. фонд оплаты труда для исполнений j (j.rn, j.исполнение_rn, j.имякатегории_rn, i.сумма, i.категориядействуетс,....)
Нужна выборка, такие столбцы
i.исполнение_rn, i.действС, i.действПО, j..сумма (Оклад), j.сумма(за_сельские), i.сумма(N-е)....по всем выплатам у каждого исполнения
И вот как вытащить все и сразу?
...
Рейтинг: 0 / 0
27.03.2010, 20:48
    #36546424
maximijk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатокам SQL!!!
поправляюсь:
2. фонд оплаты труда для исполнений j (j.rn, j.исполнение_rn, j.названиевыплаты_rn, j.сумма, j.категориядействуетс,....)
...
Рейтинг: 0 / 0
27.03.2010, 21:57
    #36546479
maximijk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатокам SQL!!!
если я правильно понимаю, можно как то создать временную табличку, и циклом запихать туды значения выплат. подскажите как? или почитать где по теме?
...
Рейтинг: 0 / 0
27.03.2010, 22:06
    #36546486
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатокам SQL!!!
maximijk,

Воспользуйся тегом CSV и приведи примеры того что есть и что хочешь получить.
...
Рейтинг: 0 / 0
27.03.2010, 22:25
    #36546499
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатокам SQL!!!
maximijk,

Автоматизируешь расчет з.п. мед учреждения?
Вот те пример
i
rn date_begin date_end1 26.03.2010 22:20:57 28.03.2010 22:20:572 26.03.2010 22:20:57 28.03.2010 22:20:573 26.03.2010 22:20:57 28.03.2010 22:20:57
j
rn sm_1 sm_2 sm_31 10 20 301 20 50 202 30 70 602 40 50 503 50 20 803 60 10 50
А вот выбирается это так
Код: plaintext
1.
2.
3.
4.
5.
6.
select i.rn, i.date_begin, i.date_end,
sum(j.sm_1) sm_1,
sum(j.sm_2) sm_2,
sum(j.sm_n) sm_n
from       i
inner join j on i.rn = j.rn
group by i.rn, i.date_begin, i.date_end 
...
Рейтинг: 0 / 0
27.03.2010, 22:26
    #36546500
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатокам SQL!!!
AmKad,

Поправка:
Код: plaintext
left join
...
Рейтинг: 0 / 0
27.03.2010, 22:31
    #36546504
maximijk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатокам SQL!!!
AmKad,
не красиво через тег выходит, вот Excel
...
Рейтинг: 0 / 0
28.03.2010, 14:35
    #36546815
maximijk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатокам SQL!!!
в табличке j идут данные о КАЖДОЙ выплате ПОСТРОЧНО а не по столбцам в ОДНОЙ строкЕ см вложенный лист excel.
В ТОМ И ЗАСАДА.
Уверен, что можно создать free-табличку и добавить данные в неё циклом, пройдя по все строкам каждого исполнения.
просто не знаю, как на фоксе сделать :(
КТО ЗНАЕТ?
...
Рейтинг: 0 / 0
29.03.2010, 07:36
    #36547398
FFF065
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатокам SQL!!!
maximijk, Парус ? :)
...
Рейтинг: 0 / 0
29.03.2010, 10:55
    #36547638
quxix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатокам SQL!!!
maximijkв табличке j идут данные о КАЖДОЙ выплате ПОСТРОЧНО а не по столбцам в ОДНОЙ строкЕ см вложенный лист excel.
В ТОМ И ЗАСАДА.
Уверен, что можно создать free-табличку и добавить данные в неё циклом, пройдя по все строкам каждого исполнения.
просто не знаю, как на фоксе сделать :(
КТО ЗНАЕТ?

Если количество ставок фиксированно и известно,то можно и запросом,иначе городи циклами.
По примеру экселя,примерно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
select исполнение_rn,;
max(iif(коэф= 1 ,сумма, 0 ))сумма_при_коэф_1,
max(iif(коэф= 0 . 5 ,сумма, 0 ))сумма_при_коэф_0. 5 ,
...
max(iif(коэф=N,сумма, 0 ))сумма_при_коэф_N,
from 'фонд заработной платы';
group by исполнение_rn
если в табл фонда з/п коэф не уникален в пределах исполнения_rn,тогда нужно будеть добавить в агрегирующие поля 'выплата_rn'

Код: plaintext
1.
2.
3.
4.
5.
6.
select исполнение_rn,выплата_rn;
max(iif(коэф= 1 ,сумма, 0 ))сумма_при_коэф_1,
max(iif(коэф= 0 . 5 ,сумма, 0 ))сумма_при_коэф_0. 5 ,
...
max(iif(коэф=N,сумма, 0 ))сумма_при_коэф_N,
from 'фонд заработной платы';
group by исполнение_rn,выплата_rn
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Знатокам SQL!!! / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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