|
Получение данных из других таблиц, с учётом последнего и предполследнего значения поля.
|
|||
---|---|---|---|
#18+
Здравствуйте. Я столкнулся с сложной(для моего околонулевого уровня знания sql) проблемой. Мне нужно через sql собрать таблицу, чтобы она отображала cars.gov_num и name_brand, но при этом есть сложность в том, что в таблице mileages есть есть записи, их нужно рассортировать по idcar и взять два последних значения из поля mileages.value, посчитать их кратность(деление value на docs_to.interval_prvdn с учётом совпадения idbrand и типа ТО(docs_to.doc_to)) и если кратность отличается уже их выбрать и дальше там куда-нибудь в список занести и т.д. Алгоритмом в приложении я это реализовал, но из-за плохого знания sql я такое сделать в mysql не могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2020, 06:50 |
|
Получение данных из других таблиц, с учётом последнего и предполследнего значения поля.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2020, 21:19 |
|
Получение данных из других таблиц, с учётом последнего и предполследнего значения поля.
|
|||
---|---|---|---|
#18+
Akina, Ну я попробовал что-то своять. Тут проблема есть, вместо ожидаемых 6 записей, у меня выводиться 14*9=126 записей. Что примечательно каждый id_mileage повторяется 9 раз, а brand_name вообще не группируется. select * from ( SELECT mileages.id_mileage,car_brands.brand_name, cars.goverment_num, mileages.value, if ( @p1=cars.id_car, @rownum:=@rownum+1, @rownum:=1+Least(0,@p1:=cars.id_car)) as rown FROM car_brands, cars, docs_to, mileages, (select @rownum:=1, @p1:='_') zz WHERE ((car_brands.id_brand=cars.idbrand) And ((mileages.idcar=cars.id_car))) order by mileages.id_mileage desc ) yy where rown <3; ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2020, 11:46 |
|
Получение данных из других таблиц, с учётом последнего и предполследнего значения поля.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2020, 14:00 |
|
Получение данных из других таблиц, с учётом последнего и предполследнего значения поля.
|
|||
---|---|---|---|
#18+
Вот такой скрип выдаёт первые две записи по ид. Если же вставить на (((1))) order by id_mileage desc, выведется 14 записей вместо 6. Надо куда-то вкорячить сортировку наоборот.. select * from ( SELECT id_mileage, idcar, brand_name, cars.goverment_num, mileages.value, if ( @p1=idcar, @rownum:=@rownum+1, @rownum:=1+Least(0,@p1:=idcar)) as rown FROM mileages, cars, car_brands, (select @rownum:=1, @p1:='_') zz where mileages.enable!=0 and car_brands.id_brand=cars.idbrand And mileages.idcar=cars.id_car (((1))) ) yy where rown <3; ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2020, 09:29 |
|
Получение данных из других таблиц, с учётом последнего и предполследнего значения поля.
|
|||
---|---|---|---|
#18+
UFO_FOV , а версия-то MySQL у тебя какая? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2020, 10:45 |
|
Получение данных из других таблиц, с учётом последнего и предполследнего значения поля.
|
|||
---|---|---|---|
#18+
Akina, Ну последняя 8.0-я. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2020, 17:11 |
|
Получение данных из других таблиц, с учётом последнего и предполследнего значения поля.
|
|||
---|---|---|---|
#18+
Ну а чего тады бабушку лохматишь? всё давно сказано - 22067163 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2020, 21:40 |
|
|
start [/forum/topic.php?fid=47&msg=39920352&tid=1828764]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
82ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 303ms |
total: | 464ms |
0 / 0 |