Привет, парень Я работаю над POS-приложением с MySQL. Вот моя ситуация:POS-приложение - упростить SQL Mutli-Queries (MySQL)
Таблица «purchased_item»
| id | name | check_id | real_price |
| 1 | iPhone5 | 0001 | 399 |
| 2 | iPhone4 | 0001 | 199 |
| 3 | iPhone5s | 0002 | 599 |
| 4 | iPhone5c | 0003 | 399 |
| 5 | iMac 21" | 0003 | 999 |
| 6 | iPod Touch | 0003 | 99 |
| 7 | iPhone5 | 0004 | 399 |
| 8 | iPhone3G | 0004 | 99 |
| 9 | iPhone6 | 0005 | 899 |
| 10 | iPhone3Gs | 0005 | 101 |
И я хочу знать, сколько проверок Тотал больше или каче (> =) 1000, так что я делаю сейчас, чтобы сделать несколько раз запроса. В этом примере я делаю 5 раз и суммирую его вручную с помощью хост-программы.
Позже данные растут, запросы становятся медленными, потому что каждый день проверяется тонна чеков. Поэтому я переписываю его на другую таблицу.
стол «проверяет»
| id | total | sales |
| 0001 | 598 | A |
| 0002 | 599 | A |
| 0003 | 1497 | B |
| 0004 | 498 | B |
| 0005 | 1000 | A |
Но другая проблема происходит в более позднее время: Когда мне нужно настроить real_price в таблице «purchased_item», я также должен поддерживать столбец «тотальную» в «сдержек " Таблица. Это звучит неважно, но я бы хотел найти лучший способ решить эту проблему.
Решено:
SELECT * FROM purchased_item
GROUP BY check_id
HAVING sum(real_price) >= 1000
И результат будет:
| id | name | check_id | real_price |
| 4 | iPhone5c | 0003 | 399 |
| 9 | iPhone6 | 0005 | 899 |
Еще один вопрос: Если я хочу, чтобы подсчитать общую цену для проверки, как я могу это сделать? я нашел:
SELECT check_id,sum(real_price) FROM purchased_item
GROUP BY check_id
HAVING sum(real_price) >= 1000
Но check_id 0003 применяется для iphone5c, IMAC 21 и IPod Touch. И check_id 0005 применяется для iphone6 и iphone3gs.(0003 и 0005 превышают 1000) – MrSimpleMind
Если вам нужна игрушка show 'check_id' с суммой' real_price' больше 100, почему вы показываете только 'iPhone5c', а не' iPhone3Gs', поскольку она является частью 'check_id' 0005 ? – gotqn
bcoz Я хочу удалить дублируемую запись, или, я должен сказать, хочу подсчитать, сколько проверок превышает 1000 –