我有桌子:
我提出了这个问题:
select
dfactuur.factuurid,
isnull(jnaf,0)+isnull(oldafschr,0) afgeschr,
isnull(fbetaald,0)+isnull(oldbetaald,0)betaald,
bedrag,
betalingen.datum,
dfactuur.datum,
cast(sum(isnull((isnull(betalingen.credit,0)/dfactuur.bedrag)*cast(betalingen.datum-dfactuur.datum as integer),0))/count(*)as integer) dagen
from
dfactuur
LEFT JOIN(
SELECT
factuurid,
ISNULL(Sum(credit),0)-ISNULL(Sum(debet),0)As FBetaald,
datum,
credit
FROM
journaal
WHERE
Soort=1 AND
betaald=1
GROUP BY
credit,
datum,
factuurid)
As betalingen
ON betalingen.factuurid=Dfactuur.factuurid
LEFT JOIN(
SELECT
factuurid,
ISNULL(Sum(credit),0)-ISNULL(Sum(debet),0)As JNAf
FROM
journaal
WHERE
Soort=1 AND
ISNULL(betaald,0)=0
GROUP BY
factuurid)
As afschrijvingen ON afschrijvingen.factuurid=Dfactuur.factuurid
LEFT JOIN(
SELECT
factuurid ,
ISNULL(Sum(bedrag),0) As OldBetaald
FROM
DBetaling
WHERE
betaald=1
GROUP BY
factuurid)
As Oldbetalingen ON Oldbetalingen.factuurid=Dfactuur.factuurid
LEFT JOIN(
SELECT
factuurid,
ISNULL(Sum(bedrag),0) As OldAfschr
FROM
DBetaling
WHERE
ISNULL(betaald,0)=0
GROUP BY factuurid)
As OldAfschr ON OldAfschr.factuurid=Dfactuur.factuurid
LEFT JOIN(
SELECT
factuurid,
count(*) Herh
FROM
Herhaling
GROUP BY
factuurid)
As Herhalingen ON Herhalingen.factuurid=dfactuur.factuurid
WHERE
ISNULL(verwijderd,0)=0 AND
dfactuur.relatienr = 1329--1284
GROUP BY
dfactuur.factuurid,
afschrijvingen.jnaf,
OldAfschr.OldAfschr,
betalingen.fbetaald,
Oldbetalingen.oldbetaald,
bedrag,
betalingen.datum,
dfactuur.datum
这会产生许多记录,当在一张发票上进行更多付款时,记录会显示一次以上。
我需要一个返回1条记录的查询: 发票总数和未全额付款的数量,所有发票总金额,已付金额,写入总金额以及付款天数。
我不需要dfactuur.factuurid