Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запрос [IB6.x]


GanibalLector ©   (2004-11-23 01:43:00) 

Есть такие поля : kol,type
Необходимо summ(kol) where type>1 !!!минус!!! summ(kol) where type=0
Типа как?Что-то немогу понять...


Sandman25   (2004-11-24 11:14:00) [1]

[18] Johnmen ©   (24.11.04 11:08)

Красиво. Спасибо, запомню идею :)


Johnmen   (2004-11-24 11:08:00) [2]

>Sandman25 ©   (24.11.04 10:54) [17]

Выделение знака (sign) для целочисленного типа поля:
SELECT
CAST(CAST(integerfield-0.5 AS INT)+1.5 AS INT)-1-integerfield
FROM ...


Sandman25   (2004-11-24 10:54:00) [3]

[16] Johnmen ©   (24.11.04 10:47)

А если у нас уже целое?
Как из -3 сделать -1?


Johnmen   (2004-11-24 10:47:00) [4]

>Sandman25 ©   (24.11.04 10:45) [15]

Нет. Используя CAST к целому.


Sandman25   (2004-11-24 10:45:00) [5]

[14] Johnmen ©   (24.11.04 10:39)

Если есть CASE или IIF? Или преобразованием в CHAR и анализом первого символа?


Johnmen   (2004-11-24 10:39:00) [6]

>Sandman25 ©   (24.11.04 10:24) [12]
>Написать UDF типа sign?

Знак можно выделить и без исп-ия УДФ.

>Vemer ©   (24.11.04 10:32) [13]

Я имел в виду широкое понятие "тип". Напр. порода собак.


Vemer   (2004-11-24 10:32:00) [7]

Структуру таблиц думать надо, чтобы потом данные из них просто  выковыривались. С точки зрения "типа" операции могут быть (-1, 1 и 0) а по "статусу" - сколько угодно (поставка, продажа, заказ, кредит, изменение пая, использование на фирме и т.д. и т.п.). Но все "статусы" вписываются в 3 "типа" .


Sandman25   (2004-11-24 10:24:00) [8]

>А на что поменять type, больший 1 ?

Написать UDF типа sign?


Johnmen   (2004-11-24 10:24:00) [9]

>Vemer ©   (24.11.04 10:21) [10]

Да нормальный пример. Только типов может быть, и как правило бывает, больше 2/3.


Vemer   (2004-11-24 10:21:00) [10]

To JohnMen
Пример и предложение по замене - под конкретную задачу, и др. данных нет )). Обычно "тип" имеет значения (-1 и 1, иногда 0 (нейтральная операция)).


Johnmen   (2004-11-24 10:06:00) [11]

>Vemer ©   (24.11.04 10:02) [8]

А на что поменять type, больший 1 ?
:)


Vemer   (2004-11-24 10:02:00) [12]

Вот:
Select Sum(kol * ((Type*2)-1) from table

А еще проще поменять 0 на -1 в таблице.


Sandman25   (2004-11-24 09:58:00) [13]

[6] Deniz ©   (24.11.04 06:55)

В качестве внешней таблицы лучше использовать другую, желательно с одной строкой данных.


Deniz   (2004-11-24 06:55:00) [14]


> GanibalLector ©   (23.11.04 09:35) [4]
> 2 Deniz
> > как должно быть показано?
> Одним числом.[3] пожет два

Я балдею, а запятую после sum_1 убрать и чуть-чуть подправить не судьба?
select distinct
(select sum(kol) from table where type >= 1) -
(select sum(kol) from table where type = 0) as sum_0
from table


stud   (2004-11-23 10:25:00) [15]

условия по агрегатным функциям вроде having надо использовать


GanibalLector   (2004-11-23 09:35:00) [16]

2 Deniz
> как должно быть показано?
Одним числом.[3] пожет два


Deniz   (2004-11-23 08:15:00) [17]

Как должно быть показано?
select distinct
(select sum(kol) from table where type >= 1) as sum_1,
(select -sum(kol) from table where type = 0) as sum_0
from table
В firebird есть case


GanibalLector   (2004-11-23 01:50:00) [18]

Ёпрс...пардоньте за ошибки!
su mи хотел

З.Ы. Пока трезв


GanibalLector   (2004-11-23 01:44:00) [19]

В ХП могу,но хотель бы без


Наверх

Титульная страница Поиск, карта сайта Написать письмо