|
|
|
Найти MAX последних 9-ти записей
|
|||
|---|---|---|---|
|
#18+
Найти MAX последних 2-x записей Вот такая таблица "coming": id - date - tovar - sum 1 - 20080101 - ТоварА - 600 2 - 20080102 - ТоварБ - 1 3 - 20080103 - ТоварА - 500 4 - 20080104 - ТоварА - 4 Делаю такой запрос: select tovar,MAX(sum) as c from coming group by 1 order by date DESC,id DESC limit 0,2 Но такой запрос лимитом своим отрезает не пробег с конца таблицы вверх до второго товара, а сами товары обрезает. А как мне составить запрос, чтобы получить результат: ТоварА - 500 ТоварБ - 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2008, 19:13:46 |
|
||
|
Найти MAX последних 9-ти записей
|
|||
|---|---|---|---|
|
#18+
ZiBНайти MAX последних 2-x записей Вот такая таблица "coming": id - date - tovar - sum 1 - 20080101 - ТоварА - 600 2 - 20080102 - ТоварБ - 1 3 - 20080103 - ТоварА - 500 4 - 20080104 - ТоварА - 4 Делаю такой запрос: select tovar,MAX(sum) as c from coming group by 1 order by date DESC,id DESC limit 0,2 Но такой запрос лимитом своим отрезает не пробег с конца таблицы вверх до второго товара, а сами товары обрезает. А как мне составить запрос, чтобы получить результат: ТоварА - 500 ТоварБ - 1Не вижу логики, почему именно эти две записи? Они не последние и не максимльные... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2008, 19:16:56 |
|
||
|
Найти MAX последних 9-ти записей
|
|||
|---|---|---|---|
|
#18+
ZiBНайти MAX последних 2-x записей Вот такая таблица "coming": id - date - tovar - sum 1 - 20080101 - ТоварА - 600 2 - 20080102 - ТоварБ - 1 3 - 20080103 - ТоварА - 500 4 - 20080104 - ТоварА - 4 Делаю такой запрос: select tovar,MAX(sum) as c from coming group by 1 order by date DESC,id DESC limit 0,2 Но такой запрос лимитом своим отрезает не пробег с конца таблицы вверх до второго товара, а сами товары обрезает. А как мне составить запрос, чтобы получить результат: ТоварА - 500 ТоварБ - 1 Если я всё правильно понял, то что-то такое должно быть: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. На работоспособность не проверял!!! Всё на уровне идеи!!! З.Ы. При желании, можно сильно упростить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2008, 06:28:02 |
|
||
|
Найти MAX последних 9-ти записей
|
|||
|---|---|---|---|
|
#18+
Эти две записи последние по дате, в рабочей версии программы надо будет смотреть макс значение в последних 9-ти приходов, а тут я упростил до последних двух приходов. Спасибо Добрый Э - Эх, я увидел строчку "having count(1) <= 2" и мне уже кажется что именно так и будет работать, вечером проверю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2008, 07:11:58 |
|
||
|
Найти MAX последних 9-ти записей
|
|||
|---|---|---|---|
|
#18+
Работает!!!! Код: plaintext 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. 27. 28. 29. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2008, 09:55:17 |
|
||
|
Найти MAX последних 9-ти записей
|
|||
|---|---|---|---|
|
#18+
Только я не доганяю как работает, но работает. А как быстро такой запрос будет совершатЦо при скажем 5000 приходов??? (записей в coming) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2008, 09:57:26 |
|
||
|
Найти MAX последних 9-ти записей
|
|||
|---|---|---|---|
|
#18+
Ну, честно скажу - решение не из быстрых. Я бы даже сказал наоборот - из разряда крайне медленных. Нужно думать над оптимизацией запроса. Если в итоговую выбрку нужны только два поля: товар и макс(сумма) (как было в начальном вопросе), то можно вдвое сократить запрос, повысив тем самым и его производительность примерно в теже два раза: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Если же нужны все поля исходной таблицы, то тогда оптимизировать можно только через полное изменение логики запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2008, 10:04:22 |
|
||
|
Найти MAX последних 9-ти записей
|
|||
|---|---|---|---|
|
#18+
Нет, не работает )-: вот при таком варианте: coming id - date - tovar - sum 1 - 20080101 - ТоварА - 600 2 - 20080102 - ТоварБ - 1 3 - 20080103 - ТоварА - 500 4 - 20080102 - ТоварБ - 3 5 - 20080102 - ТоварБ - 2 6 - 20080102 - ТоварБ - 1 7 - 20080104 - ТоварА - 700 Получается: ТоварА - 500 ТоварБ - 2 Это из двух последних приходов, он пропустил приход под id 7 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2008, 10:07:55 |
|
||
|
Найти MAX последних 9-ти записей
|
|||
|---|---|---|---|
|
#18+
"Не верю!" (с) :) давай типы полей смотреть. Суммы точно что=-то из числовых типов? Случайно не символьный тип там? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2008, 10:11:33 |
|
||
|
Найти MAX последних 9-ти записей
|
|||
|---|---|---|---|
|
#18+
Код: plaintext Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2008, 10:19:16 |
|
||
|
Найти MAX последних 9-ти записей
|
|||
|---|---|---|---|
|
#18+
о-о-о-о-о, кажись понял в чем косяк... :) Счас попробую исправить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2008, 10:52:26 |
|
||
|
Найти MAX последних 9-ти записей
|
|||
|---|---|---|---|
|
#18+
просто несовсем понятно, как ранжировать записи в случае, если в один день было несколько приходов одного и того же товара? Что вообще является первичным при сортировке? ID прихода? Дата прихода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2008, 10:53:56 |
|
||
|
Найти MAX последних 9-ти записей
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эхпросто несовсем понятно, как ранжировать записи в случае, если в один день было несколько приходов одного и того же товара? Что вообще является первичным при сортировке? ID прихода? Дата прихода? Да вы все правильно поняли. первичным дата, id вторичен вот что я сделал и у меня работает!!! Код: plaintext 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. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. извините это не упращенный вариант, а скопированный прям из php скрипта, седня буду сидеть на работу, если время позволит попробую его оптимизировать/сократить. Скорость работы скрипта не очень важна... именно этого. Этот скрипт для вывода таблицы - отчета оборотки, отчету позволительно работать долго. Я еще не реализовал вывод остатков на начало периода (пока вообще периода нет). Цены которые буду той выборкой находится будут хранится в прайсе и обновлятся каждый раз при добавлении нового прихода (т.е. запрос будет на конкретный id товара и уже запрос будет легче). Так что большое вам спасибо Добрый Эх за помощ, даже не наю куда я без вас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2008, 06:50:04 |
|
||
|
Найти MAX последних 9-ти записей
|
|||
|---|---|---|---|
|
#18+
Ну, если первично сортируем по дате, а данные на одну дату - по ID, то вот тебе испраленная версия запроса: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Соответственно, если нужны все поля таблицы, то запрос примет вид: Код: plaintext 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. 27. 28. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2008, 07:20:39 |
|
||
|
Найти MAX последних 9-ти записей
|
|||
|---|---|---|---|
|
#18+
Кстати, с учетом того, что LIMIT в подзапросах рулит, то можно переписать запрос именно через LIMIT в подзапросе. Производительности это должно пойти на пользу :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2008, 10:27:56 |
|
||
|
Найти MAX последних 9-ти записей
|
|||
|---|---|---|---|
|
#18+
Нет, мне не нужны все поля, все остальные поля будут братЦо из другой таблицы. вот мой окончательный запрос Код: plaintext 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. 27. 28. 29. а структуру базы данных мою можно углядеть тут: http://zibnv.homeip.net/salons/backup/salon_2008-10-28_17-19.sql А саму программу: http://zibnv.homeip.net/salons/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2008, 16:24:26 |
|
||
|
Найти MAX последних 9-ти записей
|
|||
|---|---|---|---|
|
#18+
ZiBНет, мне не нужны все поля, все остальные поля будут братЦо из другой таблицы. вот мой окончательный запрос Код: plaintext 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. а структуру базы данных мою можно углядеть тут: http://zibnv.homeip.net/salons/backup/salon_2008-10-28_17-19.sql А саму программу: http://zibnv.homeip.net/salons/ Несколько смущает то, как ты использовал OR. Ты уверен, что не забыл расставить скобок где надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2008, 04:59:34 |
|
||
|
Найти MAX последних 9-ти записей
|
|||
|---|---|---|---|
|
#18+
Исправился, просто разбирался в логике запроса, эксперементировал... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. А вот такой запрос я сделал при поиске цены на текущий товар: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. теперь структура другая (-: http://zibnv.homeip.net/salons/backup/salon_2008-10-30_21-56.sql ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2008, 08:09:43 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=35622204&tid=1846987]: |
0ms |
get settings: |
23ms |
get forum list: |
27ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
354ms |
get topic data: |
23ms |
get forum data: |
6ms |
get page messages: |
101ms |
get tp. blocked users: |
3ms |
| others: | 333ms |
| total: | 884ms |

| 0 / 0 |
