Нужна помощь с чрезвычайно сложным (для меня) запросом MySQL

0

У меня очень сложный (для меня) mysql-запрос, который я пытаюсь написать - я так очень близка, кроме одной маленькой части. Здесь сделка - у меня есть таблица транзакций и таблица растений, и я пытаюсь собрать "таблицу лидеров", которая будет табулировать все транзакции и затраты и рассчитать общие доходы и прибыль. Здесь соответствующие поля (измененные имена, чтобы упростить здесь):

ТАБЛИЦА транзакций:

username | user_city | total_sale | qty_sold 
============================================

ТАБЛИЦЫ:

plant_city | plant_base_cost

Итак, я смог рассчитать все, что мне нужно знать о продаже, с довольно хорошим размером запроса, что приводит к этому (две строки строк):

username  |price |  user_city       |  plant_city  |  base_cost | qty |  cost |  profit
=======================================================================================
AndyHabs  | 1140 |   1           |  1           |    65   | 6   |  390  |   750
AndyHabs  | 1000 |   1           |  5           |    100   | 5 |  500  |   500

Довольно просто, не так ли? Мне просто нужно суммировать соответствующие поля и группировать их по имени пользователя - за исключением этой проблемы! Если user_city DIFFERENT, чем plant_city, мне нужно умножить базовую стоимость на 1.6... У меня нет ИДЕИ, как включить это условие в мой запрос - было довольно просто выполнить базовый вычисление по полю, но есть ли способ включить такое условие в мое утверждение?

У меня нет проблем по своей сути, просто делая это в PHP script, но если эта таблица будет намного больше, это займет очень много времени, и мне бы хотелось использовать некоторые великолепные сценарии разбивки на страницы, которые сделают его приятным просто получить данные, которые мне нужны прямо из MySQL.

Спасибо заранее!

  • 0
    Разместите свой запрос - вы хотите получить эту дополнительную информацию в одном запросе, верно?
Теги:

1 ответ

3

Используйте выражение CASE в расчете.

  • 0
    Потрясающие. Не знал, что это возможно, но это было примерно в 20 раз легче, чем я ожидал. Спасибо за толчок в правильном направлении, сэр.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню