لماذا في الحالة الأولى يعرض debit = 'null' ، والثاني المبلغ الصحيح
سؤال
لماذا في الحالة الأولى يعرض debit = 'null' ، والثاني المبلغ الصحيح
~
SELECT o.kadastr, /* Кадастровый номер */
d.ar_inn, /* ИНН арендатора */
o.adres, /* Адрес участка */
r.name, /* ФИО арендатора */
o.pl_common, /* Общая плащадь */
d.arenda_beg, /* Дата начала ареды */
d.arenda_end, /* Дата конца ареды */
d.dogovor_kadst, /* Общая кадастровая стоимость */
rr.ref_str, /* Вид разрешенного использования */
( SELECT SUM(rsh.debit)
FROM raschet rsh
WHERE rsh.s = 'C'
AND rsh.period_y = '2010'
AND rsh.dog_no = d.dog_no_fact) debet /* Годовая арендная плата */
FROM dogovor d
INNER JOIN recviz r ON (r.inn_fact = d.ar_inn)
LEFT JOIN object o ON (o.obj_no = d.obj_no)
LEFT JOIN ras_refstr rr ON (rr.rasrefstrid = o.object_razr_isp)
~
SELECT SUM(rsh.debit) debit
FROM raschet rsh
WHERE r.dog_no = '1000'
AND r.s = 'C'
AND r.period_y = '2010'
المحلول
debet
سوف يكون NULL
و لهذا:
AND rsh.dog_no = d.dog_no_fact
إذا لم يكن هناك rs.dog_no
الذي يطابق d.dog_no_fact
, ، سيعود الفرعية الفارغة.
لا تنتمي إلى StackOverflow