Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка среди таблиц Показателя эффективности и привеса / 25 сообщений из 30, страница 1 из 2
08.03.2015, 11:00:03
    #38898248
Кристиан
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
Есть база данных Svinoferma. Диаграмма в фото. Привес животного в месяц у меня статический и определяется в таблице Pig, расход корма в месяц тоже статический и определяется в таблице Korm. Не могу сделать запросы
-вывести привес каждого животного указанной свинарки за указанный период времени и средний их привес, где привес - это изменение веса животного, и составить ведомость расхода кормов всех видов за указанный период времени для указанной свинарки
-для всех свинарок вычислить и упорядочить по убыванию показатели эффективности их работы за заданный месяц, равные суммарному привесу животных, деленному на суммарный расход всех кормов по всем животным указанной свинарки.
Пока у меня получилось найти суммарный расход указанного корма указанного животного, а также его мамы и папы(p.s. длинное, потому что проверяю запрос на ноль и поэтому каждый раз надо его повторять, я нахожу расход корма по свинье, его маме и папе и суммирую их и умножая на указанное на указанное количество месяцев.
Код: sql
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.
Select ((Case When (Select C.Rashod_month From Mama AS A
Join Pig As B On A.Klichka_mama=B.Klichka_mama AND B.Klichka = 'Boris'
Join Korm As C On C.Korm_name = A.Korm_Name
Where A.Korm_Name='aves' ) Is null then 0 else
(Select C.Rashod_month From Mama AS A
Join Pig As B On A.Klichka_mama=B.Klichka_mama AND B.Klichka = 'Boris'
Join Korm As C On C.Korm_name = A.Korm_Name
Where A.Korm_Name='aves')end)
+
(Case When (Select C.Rashod_month From Papa AS A
Join Pig As B On A.Klichka_papa=B.Klichka_papa AND B.Klichka = 'Boris'
Join Korm As C On C.Korm_name = A.Korm_name
Where A.Korm_Name='aves') Is null then 0 else 
(Select C.Rashod_month From Papa AS A
Join Pig As B On A.Klichka_papa=B.Klichka_papa AND B.Klichka = 'Boris'
Join Korm As C On C.Korm_name = A.Korm_name
Where A.Korm_Name='aves' ) end) 
+
(Case When( Select C.Rashod_month From Pig AS A
Join Korm As C On C.Korm_name = A.Korm_name
Where A.Korm_Name='aves' AND A.Klichka = 'Boris')  Is null then 0 else 
( Select C.Rashod_month From Pig AS A
Join Korm As C On C.Korm_name = A.Korm_name
Where A.Korm_Name='aves' AND A.Klichka = 'Boris') end)) * ((YEAR('2012-01-11') - YEAR('2011-12-11'))* 12
 + MONTH('2012-01-11') - MONTH( '2011-12-11'))
As Rashod_korma_ALL


Все отлично работает и считает.
Но вот с теми запросами не могу справиться.
...
Рейтинг: 0 / 0
09.03.2015, 16:00:00
    #38898868
Кристиан
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
Вот что составил по первому запросу, но не могу придумать, чтобы както суммировало одинаковый корм, вывожу отдельно для каждой свиньи
Код: sql
1.
2.
3.
4.
5.
Select Pig.Klichka,Pribavka_weight_month,Pribavka_weight_month *  ((YEAR('2012-02-11') - YEAR('2011-12-11'))* 12
 + MONTH('2012-02-11') - MONTH( '2011-12-11')) As Sum_Prives,Pig.Korm_name, Korm.Rashod_month *  
 ((YEAR('2012-02-11') - YEAR('2011-12-11'))* 12
 + MONTH('2012-02-11') - MONTH( '2011-12-11')) As Sum_Rashod  From Pig,Korm
Where Pig.Svinarka = 'Lena' And Pig.Korm_name = Korm.Korm_name
...
Рейтинг: 0 / 0
09.03.2015, 18:50:53
    #38899012
Кристиан
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
Вот по второму запросу, но получилось только для одной свинарки, помогите, как сделать для всех
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Select Pig.Svinarka,(Select  CAST (Sum( Pig.Pribavka_weight_month*  
 ((YEAR('2012-02-11') - YEAR('2011-12-11'))* 12
 + MONTH('2012-02-11') - MONTH( '2011-12-11'))) As Float) As A  From Pig,Korm 
Where Pig.Svinarka = 'Lena')
/
(Select Cast (Sum(Korm.Rashod_month *  
 ((YEAR('2012-02-11') - YEAR('2011-12-11'))* 12
 + MONTH('2012-02-11') - MONTH( '2011-12-11'))) As Float) As Sum_Rashod  From Korm
 Join Pig On Pig.Korm_name_ID=Korm.Korm_name_ID
 Where Pig.Svinarka = 'Lena')
 As Koef From Pig  Where Pig.Svinarka = 'Lena' Group By Pig.Svinarka
...
Рейтинг: 0 / 0
10.03.2015, 02:04:36
    #38899290
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
Кристиан,

1. начнем с арифметики: можно сократить ненужные телодвижения с
расчетом дат -- все равно прибавки и расход статичные,
вы умножаете дробь сверху и снузу на одно и тоже число
...
Рейтинг: 0 / 0
10.03.2015, 02:14:13
    #38899294
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
2. по схеме Свинюшка всегда питается одним кормом.
т.е. для одной свинуюшки коефициент будет


select
Korm.rasxod_month / Pig.Pribavka_weight_month one_pig_koef
from Pig join Korm on Pig.korm_name = Korm.korm_name

now, for all svinarki:

select
svinarka,
sum(Korm.rasxod_month) /
sum(Pig.Pribavka_weight_month) koef
from
Pig
join
Korm on Pig.korm_name = Korm.korm_name
group by
svinarka


from Pig join Korm on Pig.korm_name = Korm.korm_name
...
Рейтинг: 0 / 0
10.03.2015, 03:35:12
    #38899313
Кристиан
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
javajdbc,

Спасибо, а такой вопрос, мой первый запрос можно как-то упростить, который в теме?
...
Рейтинг: 0 / 0
10.03.2015, 04:33:38
    #38899319
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
Кристианjavajdbc,

Спасибо, а такой вопрос, мой первый запрос можно как-то упростить, который в теме?


не знаю, не пробовал... попробойте разобратся сами.
Прошу пардона.
...
Рейтинг: 0 / 0
10.03.2015, 08:43:11
    #38899368
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
Кристиан,

вся твоя база данных представляет яркий пример дикого бреда.

прежде чем писать какие то запросы, нужно иметь нормальную бд с нормальной структуры.
...
Рейтинг: 0 / 0
10.03.2015, 10:35:32
    #38899521
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
pig, klichka, sex, vozrast, data_birth... дайте мну розвидеть это (с)

И вообще, ТС, сколько вы знаете уникальных свиных кличек? И что будете делать, когда они все закончатся (будут использованы)?
MasterZivс нормальной структуры^
...
Рейтинг: 0 / 0
10.03.2015, 11:45:37
    #38899658
Кристиан
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
tanglir,
Хорошо, я не прошу вас написать мне программу, но я очень хочу разобраться..Подскажите слова хотя-бы, как было бы правильно составить структуру бд вот для моего задания. Хочется научиться делать правильный подход.
...
Рейтинг: 0 / 0
10.03.2015, 12:37:24
    #38899739
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
КристианПодскажите слова хотя-бы, как было бы правильно составить структуру бд вот для моего задания. Хочется научиться делать правильный подход.stfw "анализ предметной области"

Вот, например, свиньи. Что в рамках поставленной задачи надо знать о свинье?
Кличка - ну, требование уникальности оставим на совести афтара задания, а в остальном - обычный неизменный атрибут сущности .
Пол - тут всё просто, чай не медицинскую базу делаете :) М/Ж, и всё. Неизменный атрибут.
Возраст - его, конечно, надо знать, но лучше хранить дату рождения . Она со временем не меняется, в отличие от. Неизменный атрибут.
Прививки - в предположении, что список прививок жёстко фиксирован - т.е. их может быть всего 3, и каждую ставят максимум 1 раз (в условии вроде бы так), можно ограничиться тремя датами - по одной на каждую прививку. И вот как раз это в отдельную таблицу выносить смысла нет никакого. Три неизменных атрибута (даты прививок)
Назначение - тут всё очевидно. Неизменный атрибут (ссылка на справочник назначений)
Папа и мама - тоже свиньи, и, кстати, сами могли быть чьими-то поросятами, так какого ... вам понадобилось разносить родителей и детей в отдельные таблицы? 2 неизменных атрибута (ссылки на эту же таблицу)
Свинарки - тут, поскольку одно животное может обслуживаться только одной свинаркой, всё просто. Неизменный атрибут (ссылка на справочник свинарок)
Идём дальше. Вес . Его нужно знать на окончание каждого месяца . У вас это тупо свойство свиньи. Одно число. Без какого бы то ни было намёка на периодику. Фактически неизменный атрибут. Где тут соблюдение условий задачи, не вижу, хоть убейте. Делайте отдельную таблицу {свинья, месяц, вес} .
И про корма русским вроде языком написано то же самое - что расход для каждого животного определяется помесячно , а у вас в таблице что? {свинья, расход}? Делайте аналогично весу.

А вот теперь выкидывайте старую схему и рисуйте новую.

ЗЫ. "списать выбывших животных" намекает на то, что у свиней есть ещё один атрибут. Добавьте его уж как-нибудь сами.
...
Рейтинг: 0 / 0
10.03.2015, 13:18:48
    #38899807
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
КристианПодскажите слова хотя-бы, как было бы правильно составить структуру бд вот для моего задания.

Правильные слова называются "нормальные формы в реляционных БД" и "дейт".
...
Рейтинг: 0 / 0
10.03.2015, 13:24:22
    #38899813
Кристиан
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
tanglir,
Если я вас правильно понял, то получилось вот такое. Правильно ли?
И такой вопрос, а что делать с поросятами? где-то они тоже должны быть по-любому
...
Рейтинг: 0 / 0
10.03.2015, 13:25:55
    #38899819
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
tanglirКристианПодскажите слова хотя-бы, как было бы правильно составить структуру бд вот для моего задания. Хочется научиться делать правильный подход.stfw "анализ предметной области"


tanglir, ему там не нужно учиться особо предметной области, ему вся БД уже нарисована, ему нужно прочитать лекции и изучить эту самую нотацию, и по даталогической модели нарисовать таблички.
Товарищь топикстартер сделал это неправильно -- он не знает нотацию, поэтому на каждый квадратик и ромбик нарисовал таблицу.

Я с этой нотацией не знаком, но мне уже видно, что к чему. Там должно быть порядка 8 таблиц - это подсказка.
...
Рейтинг: 0 / 0
10.03.2015, 13:27:30
    #38899822
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
Кристиан,

Поля Привика1 .. привикаН - тоже есть нарушение НФ ваще-то... вынесите их в отдельную табличку "прививки" хотя бы... :)
...
Рейтинг: 0 / 0
10.03.2015, 13:32:23
    #38899833
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
Кристианtanglir,
Если я вас правильно понял, то получилось вот такое. Правильно ли?


Неправильно. Хотя уже лучше.
Но некоторая информация вообще потеряна (прививки, напр.), а некоторая -- лишняя.
"Назначения" , например, -- вообще не понятно, что.

А так -- побегай по твоей изначальной диаграмме и проверь, что потерял.

КристианИ такой вопрос, а что делать с поросятами? где-то они тоже должны быть по-любому

В той же таблице Pig, я полагаю...

Там конечно безумная идея давать всем клички, но в конце концов клички можно и генерировать...
...
Рейтинг: 0 / 0
10.03.2015, 13:34:43
    #38899840
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
Кристиан, внимательно смотрим на картинку - на ромбик "съела" и его связи с квадратиками. Потом на вашу структуру. Ещё раз на ромбик и квадратики. Ещё раз на структуру. И так до просветления.
КристианИ такой вопрос, а что делать с поросятами?А что с ними надо делать?? Или они, по-вашему, не свиньи?
...
Рейтинг: 0 / 0
10.03.2015, 13:35:53
    #38899842
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
Arhat109Поля Привика1 .. привикаН - тоже есть нарушение НФ ваще-тоЕсли каждое поле соответствует конкретному типу прививки, которую ставят максимум один раз в жизни, то нет. Впрочем, судя по схеме, это необязательно так.
...
Рейтинг: 0 / 0
10.03.2015, 13:37:20
    #38899846
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
MasterZiv"Назначения" , например, -- вообще не понятно, что.С назначениями как раз всё нормально - предполагается, что с самого рождения свинье отводится определённая роль (мясо, продажа, производитель), которая не меняется до самой смерти.
...
Рейтинг: 0 / 0
10.03.2015, 13:48:59
    #38899870
Кристиан
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
tanglirКристиан, внимательно смотрим на картинку - на ромбик "съела" и его связи с квадратиками. Потом на вашу структуру. Ещё раз на ромбик и квадратики. Ещё раз на структуру. И так до просветления.
Не доходит чтото просветления, я чтото упускаю в таблице и не могу понять, как связать прибавку веса по месяца еще и через корм...(
[quot Кристиан]И такой вопрос, а что делать с поросятами?
У нас есть информация, что поросята не едят корм, а едят молоко, и так же нужно хранить информацию до 3 поколения семьи. То-Есть какието "поросята" во втором поколении должны есть корм и типо "взрослые", а какието маленькие едят молоко..Вот тут тоже не вижу связи пока...
...
Рейтинг: 0 / 0
10.03.2015, 13:57:10
    #38899893
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
КристианУ нас есть информация, что поросята не едят кормЭто всего лишь значит, что до определённого возраста жывтоне не имеет записей в таблице "потреблено корма". А можно даже завести корм "материнское молоко" - правда, как его считать, не совсем понятно.
Кристиани так же нужно хранить информацию до 3 поколения семьиА какие с этим затруднения? Приведённая вами новая структура уже это позволяет. Хоть тысячу поколений, хоть пятьдесят тысяч...
...
Рейтинг: 0 / 0
10.03.2015, 14:27:25
    #38899948
Кристиан
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
КристианtanglirКристиан, внимательно смотрим на картинку - на ромбик "съела" и его связи с квадратиками. Потом на вашу структуру. Ещё раз на ромбик и квадратики. Ещё раз на структуру. И так до просветления.
Не доходит чтото просветления, я чтото упускаю в таблице и не могу понять, как связать прибавку веса по месяцам еще и через корм...(.
если не сильно достал, можете помочь доорганизовать уже структуру бд? Я знаю, что когда сам вникаешь, это куда эффективней, но сейчас я тупо не могу это понять, но очень нужно составить все правильно
...
Рейтинг: 0 / 0
10.03.2015, 14:32:54
    #38899963
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
Кристианя чтото упускаю в таблицев первой версии невозможно было понять, к какому месяцу относится расход и какой именно корм был съеден
во второй версии месяц добавился, а вид корма "и ныне там"
...
Рейтинг: 0 / 0
10.03.2015, 14:45:25
    #38899986
Кристиан
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
tanglir,
Снова извиняюсь, я насчет расхода корма и прибавка веса в месяц. Я добавил поле "месяц", а как теперь сделать, чтобы с месяцами увеличивался расход и прибавлялся вес не статически? Пока я могу указать конкретную дату и конкретную прибавку веса,расход корма
...
Рейтинг: 0 / 0
10.03.2015, 14:53:58
    #38900008
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка среди таблиц Показателя эффективности и привеса
tanglirMasterZiv"Назначения" , например, -- вообще не понятно, что.С назначениями как раз всё нормально - предполагается, что с самого рождения свинье отводится определённая роль (мясо, продажа, производитель), которая не меняется до самой смерти.

Ну, тогда да, я просто не понял.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка среди таблиц Показателя эффективности и привеса / 25 сообщений из 30, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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