j'ai les tableaux ci-dessous mis en place:Remplacement d'une requête en boucle
CREATE TABLE app_detail
(
CustID1 int,
CustID2 int,
AppDate datetime
)
CREATE TABLE inv_detail
(
CustID1 int,
CustID2 int,
PostDate datetime,
ClearDate datetime,
Amt float
)
INSERT INTO app_detail
VALUES(583,246,'2013-04-30 00:00:00.000')
INSERT INTO app_detail
VALUES(583,246,'2015-06-17 00:00:00.000')
INSERT INTO inv_detail
VALUES(583,246,'2013-04-05 00:00:00.000',NULL,17.56)
INSERT INTO inv_detail
VALUES(583,246,'2013-04-05 00:00:00.000','2013-12-31 00:00:00.000',667.97)
INSERT INTO inv_detail
VALUES(583,246,'2013-04-05 00:00:00.000','2014-10-05 00:00:00.000',3.96)
INSERT INTO inv_detail
VALUES(583,246,'2013-04-05 00:00:00.000',NULL,48.40)
INSERT INTO inv_detail
VALUES(583,246,'2013-01-08 00:00:00.000','2013-12-31 00:00:00.000',332.03)
INSERT INTO inv_detail
VALUES(583,246,'2013-01-08 00:00:00.000','2013-12-31 00:00:00.000',63.10)
INSERT INTO inv_detail
VALUES(583,246,'2013-07-09 00:00:00.000',NULL,1062.29)
INSERT INTO inv_detail
VALUES(583,246,'2013-04-05 00:00:00.000',NULL,17.56)
INSERT INTO inv_detail
VALUES(583,246,'2013-04-05 00:00:00.000',NULL,48.40)
select * from app_detail
select * from inv_detail
je voudrais obtenir la sortie suivante:
SELECT
'583' AS CustID1
,'246' AS CustID2
,'2013-04-30 00:00:00.000' AS AppDate
,'1133.02' AS TotalAmount
UNION
SELECT
'583'
,'246'
,'2015-06-17 00:00:00.000'
,'1128.25'
CustID1 CustID2 AppDate TotalAmount
583 246 2013-04-30 1133.02
583 246 2015-06-17 1128.25
Les premières tables contient des données sur les clients qui font une application sur un date particulière. La deuxième table contient les détails de facturation pour ces clients, quand la facture a été envoyée et quand elle a été payée (compensée). Je veux connaître le montant de la facturation que le client avait en circulation à la date de la demande. Si la facture a été payée, il y aura une date dans la colonne ClearedDate. Si la facture n'a jamais été payée, elle sera NULL.
La seule façon dont j'ai pensé à le faire est via une boucle où je viens de passer un AppDate à la fois à la clause WHERE
. Mais j'espérais pouvoir annuler cela.
Toute aide serait appréciée.
Comment calculez-vous le montant total? Je ne peux pas suivre. Pardon. –