問題を引き起こしている単純な左結合を試みています。特定の日付範囲の間に請求書(表b)があるかどうかに関係なく、リストされているすべての顧客(表a)が必要です。私の両方の試みは、その期間の請求書を持っている唯一の顧客を生み出しました:
select b.clientname,a.* from invdata a
left join clidata b on a.clidataid=b.recordid
where b.recstatus=1 and b.isactive=1
and a.reccreate between '2015-04-01 00:00:00' and '2015-04-30 23:59:59';
または
select a.clientname,b.* from clidata a
left join invdata b on a.recordid=b.clidataid
where a.recstatus=1 and a.isactive=1
and b.reccreate between '2015-04-01 00:00:00' and '2015-04-30 23:59:59';
少し助けてください。ありがとう!
where条件が内部結合であり、where条件に従ってデータをフィルタリングする左結合では、where条件を結合条件に移動する必要がある場合があります。
select b.clientname,a.* from invdata a
left join clidata b on a.clidataid=b.recordid
and b.recstatus=1 and b.isactive=1
and a.reccreate between '2015-04-01 00:00:00' and '2015-04-30 23:59:59';
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加