لماذا في الحالة الأولى يعرض debit = 'null' ، والثاني المبلغ الصحيح

StackOverflow https://stackoverflow.com/questions/3562082

  •  01-10-2019
  •  | 
  •  

سؤال

لماذا في الحالة الأولى يعرض 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, ، سيعود الفرعية الفارغة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top