Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.15;
Скачать: CL | DM;

Вниз

Формирование запроса   Найти похожие ветки 

 
Шоломицкий С. А.   (2007-01-27 02:46) [0]

Прошу помочь в составлении запроса.
Имеется одна таблица, в ней есть поля "name" и "colvo".

Мне необходимо вывести в ОДНУ СТРОКУ В РАЗНЫЕ СТОЛБЦЫ сумму значений поля "colvo" для поля "name"=Вася и "name"=Коля

Пробовал так:
(SELECT SUM(`col`) "n1" FROM akcii where name="Вася") union (SELECT SUM(`col`) "n2" FROM akcii where name="Коля")
В результате запроса хотелось бы чтобы составилсь таблица:

n1                               n2
сумма для Васи            сумма для Коля

а в итоге получается так:
n1
сумма для Васи
сумма для Коля

Не хотелось бы разбивать на несколько запросов,  а сделать всё в одном. Пожалуйста, помогите!


 
ЮЮ ©   (2007-01-27 07:41) [1]


>
> Не хотелось бы разбивать на несколько запросов,  а сделать
> всё в одном


Ты в одном и получил.
Какая разница, две записи по одному полю и одна запись в двух полях? Чтобы отобразить в DBGride? Так разбиение на нескольуо запросов этой проблемы тоже не решит. Добавь поле name в выюорку для идентификации для кого же ссума посчитана.

Чем

Вася  20
Коля  30

хуже

Вася  Коля
 20      30

???


 
sniknik ©   (2007-01-27 10:37) [2]

сделать наверняка можно, надо смотреть хелп по функциям MySQL или синтаксису... (для iif с помощью которого это можно сделать относится к функциям, для mssql case синтаксическая конструкция, как это в MySQL хз.)

принцип запроса примерно такой (по синтаксису это для аксесс, тебе не подойдет скорее всего)

SELECT Sum(iif(ID=значение ID для Васи, Col, 0)) AS "n1", Sum(iif(ID=значение для Коли, Col, 0)) AS "n2" FROM Table

сравнивать можно и по имени конечно, как у тебя, но лучше по значению ключевого поля как показал.

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


 
Шоломицкий С. А.   (2007-01-27 16:26) [3]


> Чем
>
> Вася  20
> Коля  30
>
> хуже
>
> Вася  Коля
>  20      30


хуже тем, что есть ситуации, когда есть кроме Васи и Коли ещё перцы Дима и Андрей. Так вот, если димы и Андрес ещё нет в таблицы (у них нет акции) то получается так:
20
30
NULL

тоесть 3 записи для четёрёх челове..и от сюда совершенно непонятно, для кого сумма 20, а для кого 30!
Вот в чём траблы!((


 
Desdechado ©   (2007-01-27 16:52) [4]

> и от сюда совершенно непонятно, для кого сумма 20, а для кого 30!
Еще как понятно, если последовать совету и выдавать в первую колонку этого "кого". Для таких целей применяется GROUP BY

PS null можно заменить нулем, если есть специальная функция в mysql



Страницы: 1 вся ветка

Текущий архив: 2007.04.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.068 c
15-1174227698
Суслик
2007-03-18 17:21
2007.04.15
Дети в тестировании


15-1174605082
Макс Черных
2007-03-23 02:11
2007.04.15
Забавный баян про поэтов :)


1-1171994788
Andrey.Ru
2007-02-20 21:06
2007.04.15
Как получить первые 4 бита из байта...


11-1146297860
Un-man
2006-04-29 12:04
2007.04.15
HotKey?


2-1174590591
CatRin
2007-03-22 22:09
2007.04.15
Как сделать имитация вввода чего0либо с клавиатуры?