powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка среди таблиц Показателя эффективности и привеса
25 сообщений из 30, страница 1 из 2
Выборка среди таблиц Показателя эффективности и привеса
    #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
Выборка среди таблиц Показателя эффективности и привеса
    #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
Выборка среди таблиц Показателя эффективности и привеса
    #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
Выборка среди таблиц Показателя эффективности и привеса
    #38899290
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кристиан,

1. начнем с арифметики: можно сократить ненужные телодвижения с
расчетом дат -- все равно прибавки и расход статичные,
вы умножаете дробь сверху и снузу на одно и тоже число
...
Рейтинг: 0 / 0
Выборка среди таблиц Показателя эффективности и привеса
    #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
Выборка среди таблиц Показателя эффективности и привеса
    #38899313
Кристиан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javajdbc,

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

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


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

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

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

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

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

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

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

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


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

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

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


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

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

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

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

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

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


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