Главная страница
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.046 c
1-1171985703
webpauk
2007-02-20 18:35
2007.04.15
Уничтожение компонента изнутри


11-1155826986
Psychedelic
2006-08-17 19:03
2007.04.15
Изменить размер bitmap


6-1161698837
Rey_Mysterio
2006-10-24 18:07
2007.04.15
TCP/IP


15-1173969377
Влад
2007-03-15 17:36
2007.04.15
Библиотека аналог XDelta


15-1174638171
Тема
2007-03-23 11:22
2007.04.15
Как мне запихать бинарный образ в exe?