Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.028 c
6-1087215967
KLEVO
2004-06-14 16:26
2004.08.15
Обмен данными.


8-1086102528
lelik
2004-06-01 19:08
2004.08.15
Shape под наклоном


14-1090678034
Андрей Сенченко
2004-07-24 18:07
2004.08.15
Параметры БАТников


14-1090804670
Monster
2004-07-26 05:17
2004.08.15
Где взять ?


3-1090365380
maniac
2004-07-21 03:16
2004.08.15
При Update добавляется новая запись





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский