特定の問題があります。請求書のデータを取得したい。データはグラフに使用されるため、合計が必要です。説明は次のとおりです。
Sub1 は、今月支払われた請求書の金額の合計を取得します。
Sub2 は、今月未払いの請求額の合計を取得します。
Sub3 は、今月支払済みとして計算された請求額の合計を取得しますが、実際には支払われていません。これは、他社が 5 年以上請求書を支払っていない場合に備えて、この請求書は「同様に」支払われたものです (その後、裁判所の手続きが行われます)。
問題は、たとえば sub1 のレコードがない場合、sub2 または sub3 を結合できず、いずれにしてもそれらを表示したい場合です。サブ2にレコードがなく、サブ3にレコードがある場合、サブ3は表示されないため、これも問題です。たとえば、sub1 に NULL 値があり、sub 2 と sub3 に NOT NULL がある場合でも、すべてのレコードを 1 行に表示するにはどうすればよいですか。私は現在、このクエリ ソリューションにほぼ午後中取り組んでいるので、どんな助けも感謝します。:/
SELECT sub1.y,
sub1.m,
sub1.val1,
sub2.val2,
sub2.y,
sub2.m,
sub3.y,
sub3.m,
sub3.val3
FROM
(SELECT YEAR(curdate()) AS y,
MONTH(curdate()) AS m,
SUM(totwdisc) AS val1
FROM pro_partial_inv
WHERE paidd IS NOT NULL
AND bringbar=0
AND YEAR(curdate())=YEAR(paidd)
AND MONTH(curdate())=MONTH(paidd)
GROUP BY y,
m) sub1
INNER JOIN
(SELECT YEAR(curdate()) AS y,
MONTH(curdate()) AS m,
SUM(netto) AS val2
FROM pro_partial_inv
WHERE paidd IS NULL
AND bringbar=0
AND YEAR(curdate())=YEAR(pdate2)
AND MONTH(curdate())=MONTH(pdate2)
GROUP BY y,
m) sub2
LEFT JOIN
(SELECT YEAR(curdate()) AS y,
MONTH(curdate()) AS m,
SUM(totwdisc) AS val3
FROM pro_partial_inv
WHERE paidd IS NOT NULL
AND bringbar=1
AND YEAR(curdate())=YEAR(pdate2)
AND MONTH(curdate())=MONTH(pdate2)
GROUP BY y,
m) sub3
ON sub1.y=sub2.y
AND sub1.m=sub2.m
AND sub2.y=sub3.y
AND sub2.m=sub3.m