am rezolvat
asa arata:
IF OBJECT_ID ( 'tempdb..#tempdoc', 'u' ) IS NOT NULL
DROP TABLE #tempdoc
SELECT partener.den_parten,docum.part_crean ,docum.tip_docum, docum.data, docum.nr_inreg, docum.numar,
CASE WHEN tip.inreg_cre = 1 THEN docum.suma_doc ELSE 0.00 END AS debit,
CASE WHEN tip.achit_cre = 1 THEN docum.suma_doc ELSE 0.00 END AS credit
into #tempdoc
FROM gest_docum docum
LEFT JOIN gene_partener partener
ON docum.part_crean = partener.cod_parten
LEFT JOIN gest_tipdocu tip
ON tip.tip_docum collate SQL_Latin1_General_CP1_CS_AS = docum.tip_docum collate SQL_Latin1_General_CP1_CS_AS
LEFT JOIN (
SELECT
facturi.numar,
facturi.part_crean,
SUM(CASE WHEN tipdocu.inreg_cre = 1 THEN facturi.suma_doc ELSE 0.00 END),
SUM(CASE WHEN tipdocu.achit_cre = 1 THEN facturi.suma_doc ELSE 0.00 END)
FROM gest_docum facturi
LEFT JOIN gest_tipdocu tipdocu ON tipdocu.tip_docum collate SQL_Latin1_General_CP1_CS_AS = facturi.tip_docum collate SQL_Latin1_General_CP1_CS_AS
GROUP BY facturi.numar, facturi.part_crean
)
AS rulaje (numar, cod_parten, facturat, incasat)
ON rulaje.numar = docum.numar AND rulaje.cod_parten = docum.part_crean
WHERE (rulaje.facturat != rulaje.incasat) AND (tip.inreg_cre = 1 OR tip.achit_cre = 1)
SELECT F.*, F.debit, coalesce(C.credit2,0)as credit
FROM
(
SELECT den_parten as creanta,data,part_crean as idparten,tip_docum, nr_inreg, debit, numar
FROM #tempdoc
WHERE tip_docum = 'FAV'
) AS F
LEFT JOIN
(
SELECT numar, coalesce(SUM(credit),0) as credit2
FROM #tempdoc
WHERE tip_docum = 'CHI'
GROUP BY numar
) AS C
ON F.numar = C.numar