У меня есть две таблицы: «счет-фактура» как I
и «Дебиторская задолженность» как AR
.Ошибка соединения таблицы SQL
AR
В таблицу входит выставленный счет-фактура (с идентификатором 0) и полученная денежная сумма (с идентификатором 4), а таблица I
содержит колонку суммы счета и корректировочную колонку.
Помимо обычных счетов-фактур и корректировок существуют случаи, когда корректировки были внесены в счет-фактуру, а чистый эффект - 0,00 на столе AR
. Плюс иногда, счета-фактуры создаются и списываются в таблице счетов перед отправкой, поэтому AR
будет иметь 0,00 сумму в AR
, но таблица I
имеет 100 долларов США в размере и - 100 долларов США в настройке.
Я пытаюсь создать запрос, в котором он дает мне счет-фактуру и наличные деньги, полученные бок о бок, а также создают новый столбец, который включает в себя корректировку счетов-фактур с балансом 0,00 в AR
. Столбцы, которые могут вам помочь:
AR.ID = unique ID
AR.ARinvnumber= Invoice number from Invoice table
Ar.Type= 0=invoice, 1 = payment received
Ar.Amount= ARamount saved from invoice
I.Id= unique ID
Invoice number = number of invoice
Invamount= Actual invoice amount
Inv Adjustment= Adjustment applied on invoice
Любая идея, как я могу это достичь? Я в состоянии соответствовать I
и AR
стола и наличные деньги и AR
из AR
таблицы
Select *
From (select ar.customerId, ar.customername,ar.invnumber ar.amount, i.invamout, i.invadjustment from Ar join I on ar.arinvnumber=i.invoicenumber where ar.artype=1) inv
join
select (select ar.customerId, ar.customername, ar.invnumber ar.amount, i.invamout, i.invadjustment from Ar join I on ar.arinvnumber=i.invoicenumber where ar.artype=1) cash
on inv.invnumber=cash.invnumber and inv.customerid=cash.customerid
после получения этого, как я могу включить эти счета-фактуру, для которых настройка была сделана, но там не было AR
потому что корректировка равна сумма счета-фактуры.
Следующий ответ сработал для меня. В основном я хотел включить все корректировки из таблицы счетов, в том числе те, которые не заполнены в таблице AR, поскольку были внесены корректировки, чтобы очистить баланс клиента, связанный с работой, выполненной после окончательного счета-фактуры, были проблемы. Я использовал следующий запрос
Select *
From (select AR.ARInvnum as ARInvnum, AR.Arclientnumber as Aclient, sum(AR.Amount), I.Invoicenumber, sum(distinct(I.IAmount)), sum(I.IAdjust)
From AR.ARInvnum=I.Invoicenumber
Where ar.artype=0
Group by AR.ARInvnum, I.Invoicenumber, AR.Arclientnumber)AInvoice
Left join
(select AR.ARInvnum as PARInvnum, AR.Arclientnumber as PClient, sum(AR.Amount), I.Invoicenumber, sum (I.IAmount), sum(I.IAdjust)
From AR.ARInvnum=I.Invoicenumber
Where ar.artype=4
Group by AR.ARInvnum, I.Invoicenumber, AR.ARclientnumber)PInvoice
on
AInvoice.ARInvnum=PInvoice.PARInvnum
and
AInvoice.Aclient=PInvoice.PClient
иметь в виде отчетливый пункт в первой части подзапроса удаляет дубликаты, а также суммировать их, так что это будет выглядеть как один резюме, связанное с конкретным номером счета-фактуры. первая часть подзапроса суммируется на основе проблем с счетами и корректировок, связанных с клиентом. и вторая часть соответствует всем полученным платежам. Надеюсь, это поможет.
Спасибо Натан, я пробовал, но это не сработало. Поэтому я взял результат и создал новую таблицу, чем выполнил второй запрос и присоединился к результату. Это сработало. Спасибо за Вашу поддержку. – Invisible