最初のケースでDebit = 'null'を表示する理由と、2番目に適切な量が表示される理由

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

  •  01-10-2019
  •  | 
  •  

質問

最初のケースでDebit = 'null'を表示する理由と、2番目に適切な量が表示される理由

~

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, 、サブセレクトはnullを返します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top