У меня есть таблица, чтобы представить в моем приложении, и то, что я хочу представить таблицу, в которой одна строке имеет значение, рассчитанное следующие:SQL запрос с несколькими ВЫБРАТЬ
SELECT SUM (val) FROM report_orbiting_vals rov
WHERE rov.orbiting_group_type_id = ? AND rov.orbiting_group_indice_id = ?
Для первой строки, которые я хочу настоящие 4 значения, каждый из них будет выглядеть:
SELECT SUM (val) FROM report_orbiting_vals rov
WHERE rov.orbiting_group_type_id = (1,2,3,4) AND rov.orbiting_group_indice_id = 1
Где (1,2,3,4) 4 различных ЗЕЬЕСТ с (1,2,3,4) значениями соответственно. В следующей строке я изменю rov.orbiting_group_indice_id
= 2 и захочу использовать те же значения rov.orbiting_group_type_id
(1,2,3,4).
Im new at SQL, и я хочу спросить, как представить таблицу с этим valeus?
Значит, это должно быть что-то вроде значения column1-value, column2-value, column3-value, column4-value.
Спасибо!
Обновлено: Я хочу что-то вроде следующего:
SELECT
(SELECT
SUM(val)
FROM
report_orbiting_vals rov
WHERE
rov.orbiting_group_type_id = 1
AND rov.orbiting_group_indice_id = 1) as colOne,
(SELECT
SUM(val)
FROM
report_orbiting_vals rov
WHERE
rov.orbiting_group_type_id = 1
AND rov.orbiting_group_indice_id = 2) as colTwo,
(SELECT
SUM(val)
FROM
report_orbiting_vals rov
WHERE
rov.orbiting_group_type_id = 1
AND rov.orbiting_group_indice_id = 3) as colThree,
(SELECT
SUM(val)
FROM
report_orbiting_vals rov
WHERE
rov.orbiting_group_type_id = 1
AND rov.orbiting_group_indice_id = 4) as colFourth
К сожалению, приведенный выше код не работает, это приводит к ошибке, но я надеюсь, вы понимаете, что я хочу сейчас.
обновление (2):
Я попробовал 2 решения указанных ниже, первый:
SELECT
(SELECT
SUM(val)
FROM
report_orbitings rov
WHERE
rov.orbiting_group_type_id = 1
AND rov.orbiting_group_indice_id = 1) as colOne,
(SELECT
SUM(val)
FROM
report_orbitings rov
WHERE
rov.orbiting_group_type_id = 1
AND rov.orbiting_group_indice_id = 2) as colTwo,
(SELECT
SUM(val)
FROM
report_orbitings rov
WHERE
rov.orbiting_group_type_id = 1
AND rov.orbiting_group_indice_id = 3) as colThree,
(SELECT
SUM(val)
FROM
report_orbitings rov
WHERE
rov.orbiting_group_type_id = 1
AND rov.orbiting_group_indice_id = 4) as colFourth
FROM report_orbitings rv
Выход:
В то время как вторая:
SELECT SUM(CASE WHEN rov.orbiting_group_type_id = 1 THEN val ELSE 0 END) as type1_sum,
SUM(CASE WHEN rov.orbiting_group_type_id = 2 THEN val ELSE 0 END) as type2_sum,
SUM(CASE WHEN rov.orbiting_group_type_id = 3 THEN val ELSE 0 END) as type3_sum,
SUM(CASE WHEN rov.orbiting_group_type_id = 4 THEN val ELSE 0 END) as type4_sum
FROM report_orbitings rov
WHERE rov.orbiting_group_type_id in (1,2,3,4)
AND rov.orbiting_group_indice_id = 1
Выход:
Чтобы быть ясно, я хочу признать, что база мои данные не имеют данных еще, просто структура. Тем не менее, я полагаю, что второй код работает, а первый нет, потому что он выводит [Null] вместо ничего. Почему в этих двух примерах есть разница? Он должен производить идентичный вывод.
спасибо, я много не сделать себе ясно, я хочу, чтобы каждый выбрать из вашего вопроса будет SELECT SUM (val) FROM report_orbiting_vals rov WHERE rov.orbiting_group_type_id = AND rov.orbiting_group_indice_id = 1, следующий SELECT SUM (val) FROM report_orbiting_vals rov WHERE rov.orbiting_group_type_id = 2 И rov.orbiting_group_indice_id = 1, следующий один 3, последний 4. –
@EvgeniyKleban Это то, что мой запрос делает, он вернет результат в каждом столбце. – sagi
спасибо, но не могли бы вы объяснить значение WHERE rov.orbiting_group_type_id в (1,2,3,4)?Разве это не обязательно, когда мы объясняем эти значения в запросах? –