Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 2 таблицы - как лучше сделать?  [new]
snowdeath
Member

Откуда: Уфа
Сообщений: 23
имеется 2 таблицы. в одной из них информация по зарплате. содержит поля:
nomer - integer autoinc
fio - char
chislo - date
nachisleno - float
nalog - float
k_vidache - float


вторая таблица - вычеты

nomer - integer autoinc
fio - char
chislo - date

собственно вот что нужно:
в отчете показать зарплату определенного работника с учетом вычетов (если они были) за определенный период
просто отчет по зарплате за нужный период я сделал. а тут - проблема. сильно не пинайте - я понимаю что книга мне в руки, но тут дело горит...
4 май 07, 17:34    [4101622]     Ответить | Цитировать Сообщить модератору
 Re: 2 таблицы - как лучше сделать?  [new]
snowdeath
Member

Откуда: Уфа
Сообщений: 23
даже вот как... надо, чтобы при добавлении записи в таблицу зарплаты через форму смотрелась дата и в таблице с вычетами искалось были ли для данного рабочего в этом месяце вычеты. если были, то нужно в поле k_vidache еще вычесть сумму взыскания
4 май 07, 17:51    [4101724]     Ответить | Цитировать Сообщить модератору
 Re: 2 таблицы - как лучше сделать?  [new]
-=AlexiS=-
Member

Откуда: Одесса
Сообщений: 712
Ну и откуда нам известно что у вас за данные в этих замечательных таблицах и не менее замечательных полях ?
1. По какому полю или полям связаны таблицы . Подозреваю, что это fio или fio и chislo.
Если это так- то связь по ФИО - ужас Картинка с другого сайта. А как-же однофамильцы ? Про табельный номер или ИНН слышали ?
2. Что у вас в chislo - в обеих таблицах ?
В зарплате - дата расчета / отчетный месяц (его первое или последнее число) ... ?
В вычетах - то что в зарплате или дата начала или окончания действия этих вычетов ?

PS и зачем вам деньги хранить в Float ? Для этого есть Money ну или Numeric на худой конец.
Кстати если это зарплата - почему такая структура ?
Что-то тут не то в консерватории - опишите что вы собственно делаете.
4 май 07, 18:41    [4101914]     Ответить | Цитировать Сообщить модератору
 Re: 2 таблицы - как лучше сделать?  [new]
snowdeath
Member

Откуда: Уфа
Сообщений: 23
-=AlexiS=-
Ну и откуда нам известно что у вас за данные в этих замечательных таблицах и не менее замечательных полях ?
1. По какому полю или полям связаны таблицы . Подозреваю, что это fio или fio и chislo.
Если это так- то связь по ФИО - ужас Картинка с другого сайта. А как-же однофамильцы ? Про табельный номер или ИНН слышали ?


конечно слышали. я написал, что как лучше сделать, вот чего =) именно по табельному номеру и сделаем... по фио конечно глупо, но вариант совпадения именно полностью ФИО минимален. но возможен.

-=AlexiS=-

2. Что у вас в chislo - в обеих таблицах ?
В зарплате - дата расчета / отчетный месяц (его первое или последнее число) ... ?
В вычетах - то что в зарплате или дата начала или окончания действия этих вычетов ?


chislo - дата выдачи зарплаты или дата совершения вычета за нарушение

-=AlexiS=-

PS и зачем вам деньги хранить в Float ? Для этого есть Money ну или Numeric на худой конец.
Кстати если это зарплата - почему такая структура ?
Что-то тут не то в консерватории - опишите что вы собственно делаете.


ну, по-моему не совсем принципиально в чем хранить деньги, ну да ладно, сделаем money :) почему такая структура - потому что именно так мне ее описали. я просто практику прохожу... фокспро немного проходили, а тут столкнулся с реальной задачей и куча вопросов возникла...
4 май 07, 18:48    [4101937]     Ответить | Цитировать Сообщить модератору
 Re: 2 таблицы - как лучше сделать?  [new]
snowdeath
Member

Откуда: Уфа
Сообщений: 23
-=AlexiS=-

PS и зачем вам деньги хранить в Float ? Для этого есть Money ну или Numeric на худой конец.

еще раз извиняюсь заранее, но почему-то я не нашел типа поля money... или совсем дурак? numeric вижу, а вот money - хоть убей нет. юзаю vfp
4 май 07, 18:51    [4101956]     Ответить | Цитировать Сообщить модератору
 Re: 2 таблицы - как лучше сделать?  [new]
-=AlexiS=-
Member

Откуда: Одесса
Сообщений: 712
еще раз извиняюсь заранее, но почему-то я не нашел типа поля money... или совсем дурак? numeric вижу, а вот money - хоть убей нет. юзаю vfp


Это я извиняюсь - в фоксе Currency .
Просто работаю с MS SQL - а там это money.

Опять-же насчет того что не важно в чем хранить данные - очень важно !!!
В фоксе еще "более- менее" там достаточно просто изменить размерность или тип.
А поработайте с любым SQL сервером и поймете .
4 май 07, 19:00    [4101994]     Ответить | Цитировать Сообщить модератору
 Re: 2 таблицы - как лучше сделать?  [new]
snowdeath
Member

Откуда: Уфа
Сообщений: 23
-=AlexiS=-
еще раз извиняюсь заранее, но почему-то я не нашел типа поля money... или совсем дурак? numeric вижу, а вот money - хоть убей нет. юзаю vfp


Это я извиняюсь - в фоксе Currency .
Просто работаю с MS SQL - а там это money.

Опять-же насчет того что не важно в чем хранить данные - очень важно !!!
В фоксе еще "более- менее" там достаточно просто изменить размерность или тип.
А поработайте с любым SQL сервером и поймете .


это все замечательн... спасибо что подсказали... но вот вопрос мой до сих пор актуален... может я что-то криво описал? как-нибудь более доступно объяснить что нужно?
4 май 07, 19:07    [4102012]     Ответить | Цитировать Сообщить модератору
 Re: 2 таблицы - как лучше сделать?  [new]
snowdeath
Member

Откуда: Уфа
Сообщений: 23
по-поводу связывания таблиц по полю табельный номер или ИНН. тут дело в том, что в таблице с зарплатами ведь будут дублирующиеся записи, т.к. человек каждый месяц получает зарплату... первичным ключиком быть не может. или сделать составной ключ? табельный номер+дата?
4 май 07, 19:42    [4102087]     Ответить | Цитировать Сообщить модератору
 Re: 2 таблицы - как лучше сделать?  [new]
snowdeath
Member

Откуда: Уфа
Сообщений: 23
вот такой вариант...
таблица fiotab - в ней содержится только соответствие фамилии с табельным номером.
tabnomer - integer autoinc PRIMARY key
fio

таблица zarplata - в ней содержится инфа по тому когда, сколько начислено зарплаты без учета вычетов
tabnomer - integer. regular
chislo - дата выдачи зарплаты
nachisleno - сколько денег начислено всего (не включая вычеты за нарушения)
nalog - налог на прибыль
k_vidache - сколько выдать денег (без учета нарушений)

таблица vicheti
tabnomer - integer. regular
chislo - дата совершения нарушения
zachto - за что вычитаем
sumdeneg - вычитаемая сумма

связал таблицы один ко многим. т.е. fiotab+zarplata, fiotab+vicheti
поставил целостность данных на оба отношения update: cascade, delete: cascade, unsert: ignore

собственно говоря. мне нужно где-то каким-то образом получить ИТОГОВУЮ зарплату. т.е. к примеру зарплату выдаем 25 мая. смотрим в таблице нарушений есть ли какие либо вычеты из зарплаты с 1 по 25 мая. если нету, то ИТОГОВАЯ зарплата равна зарплате по полю zarplata.k_vidache если же обнаруживаем какие-либо нарушения (их может быть несколько), то ИТОГОВАЯ зарплата=zarplata.k_vidache-каждое нарушение с 1 по 25 мая. в итоге можно создать результирующую таблицу. проблема в том, что это как-то надо реализовать... какие будут мысли? может быть я в корне вообще все неправильно делаю?
4 май 07, 20:52    [4102203]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить