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

Вниз

LEFT JOIN. Как Null "преобразовать" в 0?   Найти похожие ветки 

 
SergP ©   (2004-07-22 11:11) [0]

select podat.name, a.ply+b.ply as zplan ,a.ply as dplan, b.ply as mplan
from podat
left join tablex a on (podat.p=a.p) and (a.vb=30) and (a.r=3)
left join tablex b on (podat.p=b.p) and (b.vb=50) and (b.r=3)
order by podat.p

Мне нужно чтобы в результате было поле zplan в котором сумма значений полей dplan и mplan. Но если в результате запроса не существует какого-то значения dplan или mplan (т.е. оно равно NULL), то и zplan получается равным NULL.
Как сделать чтобы если значение поля равно NULL то чтобы оно учитывалось как 0?

Например в случае такого результата:

zplan   dplan   mplan
  15      10       5
  20      17       3
null       13    null
null     null      90


А нужно чтобы было так:


zplan   dplan   mplan
  15      10       5
  20      17       3
  13      13    null
  90    null      90


Либо так:

zplan   dplan   mplan
  15      10       5
  20      17       3
  13      13       0
  90       0      90


Подскажите как это сделать?

БД Foxpro, ADO, Провайдер VFPOLEDB.1 (Microsoft Ole DB Provider for Visual FoxPro)


 
Соловьев ©   (2004-07-22 11:15) [1]

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_foxhelp/html/lngnvllp_rp.asp


 
Соловьев ©   (2004-07-22 11:16) [2]

функция IIF()


 
Ega23 ©   (2004-07-22 11:18) [3]

А MSDN на что????

Microsoft Visual FoxPro Language Reference  

NVL( ) Function
Returns a non-null value from two expressions.

NVL(eExpression1, eExpression2)
Return Values
Character, Date, DateTime, Numeric, Currency, Logical, or the null value

Parameters
eExpression1, eExpression2
NVL( ) returns eExpression2 if eExpression1 evaluates to a null value. NVL( ) returns eExpression1 if eExpression1 is not a null value. eExpression1 and eExpression2 may be any data type. NVL( ) returns .NULL. if both eExpression1 and eExpression2 both evaluate to the null value.
Remarks
Use NVL( ) to remove null values from calculations or operations where null values are not supported or are not relevant.

Example
The following example creates a memory variable named glMyNull that contains the null value. NVL( ) is used to return a non-null value from glMyNull and another expression.

STORE .NULL. TO glMyNull  && A memory variable containing the null value
CLEAR
? NVL(.T., glMyNull)  && Displays .T.
? NVL(glMyNull, glMyNull)  && Displays .NULL.
See Also
ISNULL( ) | SET NULL


 
SergP ©   (2004-07-22 11:39) [4]


> Ega23 ©   (22.07.04 11:18) [3]


Спасибо... В этом тексте я все понял. Но вот в MSDN я навряд ли бы его нашел... Или потратил бы на это кучу времени и трафика...


 
Ega23 ©   (2004-07-22 13:39) [5]

Ну, если честно, то я НИКОГДА не писал для FoxPro, только MS SQL и немножко Interbase.
Но наверняка должна быть функция наподобие IsNull для MSSQL. Вот я её и ввёл, а дольше через See Also.

Уметь самостоятельно искать в MSDN то, что наверняка должно быть, но не знаешь как называется - это, ИМХО, целое искусство.


 
SergP ©   (2004-07-22 15:02) [6]


>  [5] Ega23 ©   (22.07.04 13:39)


Кроме того для длительных поисков нужно иметь нормального провайдера а не такого как у меня....

Если я за 36 минут смог "выжать" из инета 261 Кб данных то здесь уже не до поисков... :-(((


 
Ega23 ©   (2004-07-22 15:08) [7]

У меня MSDN локально стоит, на microsoft.com лазить больно дорого  :о)



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

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

Наверх




Память: 0.48 MB
Время: 0.033 c
3-1090472765
Fynjy1984
2004-07-22 09:06
2004.08.15
Подскажите почему не работает АDOQuery.RecNo


3-1090408109
sashuly
2004-07-21 15:08
2004.08.15
текущая колонка в DBGrid


9-1083238502
Lockdog
2004-04-29 15:35
2004.08.15
Ускоренный вывод


1-1091533107
Sectey
2004-08-03 15:38
2004.08.15
Список методов у объекта


1-1090992816
Балкон
2004-07-28 09:33
2004.08.15
Почему QRChart печатает только Solid стиль линий?