|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.03.2008, 11:02 | #11 |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 143
|
Вот и весь фокус, но уважаемые программисты вы так и не поможете мне с моим вопросом??? Повторою еще раз...
У меня во всей таблице есть два поля сумм - Сумма_покупки, Сумма_продажи, когда оба эти поля принимают серый цвет я вообще не показываю эту строку в запросе (это я осуществил сделал правильно), но мне теперь надо чтобы когда одно из этих полей принимает серый цвет то в запросе просто выводить на месте этой ячейке просто значение ноля... заранее благодарен за помощь. А с цветом кому действиетельно надо будет могу выслать пример работы приложения!!!
Свободу клавиатурным самураям...
|
22.03.2008, 12:34 | #12 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Killer_djon, я полагаю, что все сложности связаны как раз с представлением цветов в виде текста. Храните численные значения, скажем в blob'е или бинарной строке, тогда в Дельфи Вы сможете работать с ними просто как с массивом цветов, а в SQL строить условия по тому же, например, substr.
|
22.03.2008, 14:04 | #13 |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 143
|
B_N нет отнюдь сложности не с представлением цветов в виде текста, с этим проблем нету я вас уверяю... в крациях задача такая:
когда оба поля Сумма_покупки и Сумма_продажи имеют серый цвет тогда мне не нужно выводить в запросе вообще такую строку... т.е. в строке где хранятся цвета (а в общей сложности у меня 22 поля), у меня есть такое условие, чтобы не выводилась строка: ... where (color LIKE "%clSilver;clSilver%") - и все работает замечательно, изначально было условленно в постановке задачи что серый цвет будет присваиватся только этим полям! А вот чтобы значение одного из этих двух полей было 0 (т.е. в результирующем наборе данных вместо суммы подставить 0), не получается! Точнее единственное что я прошу мне подсказать - это как вывести в запросе значение 0 ... как поставить условие я знаю!!! Для чего это нужно: для того чтобы дебет с кредитом сводились... а серым цветом указывается поле для того чтобы дать понять что эта сумма не должна учитыватся в сводках... соответственно если сумма_покупки серым значит в дебете этой строки 0, ну и наоборот если сумма_продажи серым то в кредите 0...
Свободу клавиатурным самураям...
|
22.03.2008, 16:22 | #14 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Что-то никак я не пойму, что именно, нужно сделать, но подозреваю, что Вас должен спасти "IF". Что-нибудь вроде:
Код:
|
25.03.2008, 11:35 | #15 |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 143
|
B_N большое спасибо в принципе даже очень правильно и грамотно, единственное прошу мне объяснить принцип работы оператора IF:
IF( (field1 = серый OR field2 = серый), 0, Sum_Pok) as Sum - вот здесь все понятно за исключением одного: меня интерисуют параметры, если можно поподробнее пожалйста объясни мне как мне с ними работать??? Большое спасибо заранее!!!
Свободу клавиатурным самураям...
|
25.03.2008, 11:57 | #16 | |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Цитата:
Код:
|
|
25.03.2008, 11:59 | #17 |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 143
|
Вот в том то и дело, что этот синтаксис используется в InterBase насколько я знаю, поэтому применение данного оператора в моей задаче, очень даже верное... но он при выполнении запроса выдает ошибку IF
Свободу клавиатурным самураям...
|
25.03.2008, 12:10 | #18 |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 143
|
А можно ли зделать следующим образом? Цвета всех ячеек в строке хранится в отдельном поле: т.е. таким образом 'clWhite;clWhite;clWhite'... и т.д., т.е. на каждую ячейку у меня по умолчанию цвет белый, а когда я изменяю цвет то в этой строке записывается, например: 'clWhite;clSilver;clWhite', т.е. это я изменил цвет ячейки (пересечение строки со столбцом 2), ну это пример, так вот это я к чему говорю можно ли применить IF вот так:
IF ((SUBSTRING(color FROM 121 FOR 8) = clSilver), 0, Sum_pok) ... Подскажи как правильнее его можно зделать у меня выдает ошибку на операторе IF
Свободу клавиатурным самураям...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хранимые процедуры... | Только_Учусь | БД в Delphi | 2 | 17.07.2008 06:06 |
Блоб поля и хранимые процедуры | yulia | БД в Delphi | 8 | 07.06.2008 16:42 |
задача на сложные действия со строками | Converse | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 03.01.2008 07:34 |