Sql server 需要SQL对发票进行概述
我有桌子: 与aa开具发票。ID、金额、日期、删除 用aa支付Journal。发票ID,付款,信用证,日期,付款 第二次付款由aa支付。发票ID、日期、金额、已付款是/否 我提出这个问题:Sql server 需要SQL对发票进行概述,sql-server,Sql Server,我有桌子: 与aa开具发票。ID、金额、日期、删除 用aa支付Journal。发票ID,付款,信用证,日期,付款 第二次付款由aa支付。发票ID、日期、金额、已付款是/否 我提出这个问题: select dfactuur.factuurid, isnull(jnaf,0)+isnull(oldafschr,0) afgeschr, isnull(fbetaald,0)+isnull(oldbetaald,0)betaald, bedrag, betal
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请编辑以包含表中的样本数据以及您希望从该样本数据获得的输出。表journal和DBetaling中有多少记录。有了这么多的自联接,对于大型表,查询将失效。还包括表和输出的示例数据。哪个字段是指发票?请帮我们翻译一下这些字段名。肯,你知道表或记录的设计吗?我如何发送记录Emacs,可以超过100000条记录,结果可能会扫描几百条。上面的查询确实有效。Bedrag:amount betaald:payed afschrijving:write off datum:date但是查询返回了大量必须处理的记录,这使得查询速度变慢。有人知道解决方案吗??