我有两个表:
- 卖
- 项目清单
收据
我已经写了查询,但是添加了一些金额,因为它在第二个表中找到
1)销售表:
Create Table Sells(
ID int,
Invone varchar (30),
InvDate DateTime ,
Year varchar (15),
Type varchar (10) ,
Terms varchar (20) ,
Days int ,
DueDate DateTime,
Pieces int ,
Carats Real ,
Price Real ,
GrossAmt Real ,
Discount1 Real ,
DisAmt1 Real ,
Discount2 Real,
DisAmt2 Real ,
FinalAmt Real,
Party varchar (100),
Party_ID int,
Person varchar (100),
Shape varchar (30),
Quality varchar (30),
StockId int,
SalesExe varchar (50),
Remarks varchar (200),
CreatedDate DateTime,
ModifiedDate DateTime,
Username varchar (50))
2)收据表:
Create Table Receipt (
ID int ,
Invone varchar (30),
RDate DateTime,
Year varchar (15),
Type varchar (10),
HKD Real,
Rate Real,
ShortAmt Real,
RecievedAmt Real,
TotalRecievedAmt Real,
FinalAmt Real,
Party varchar (100),
Party_ID int,
Remarks varchar (200),
CreatedDate DateTime,
ModifiedDate DateTime,
Username varchar (50)
)
这是我的查询:
选择 s.Invone,s.InvDate,s.Type,s.year,s.Terms,s.DueDate,s.Party,s.Party_ID,sum(s.Pieces) AS TotalPieces, round(sum(s.Carats), 3) AS TotalCarats, round(sum(s.GrossAmt), 2) AS TotalGrossAmt, round(sum(s.DisAmt1), 2) AS TotalDis1, round(sum(s.DisAmt2), 2) AS TotalDis2, round(sum(s.FinalAmt), 2) AS TotalFinalAmt, isnull(round(sum(HKD), 2), 0) AS TotalHKD, isnull(round(rate, 2), 0) AS Rate, isnull(round(sum(ShortAmt), 2), 0) AS TotalShort,isnull(round(sum(RecievedAmt), 2), 0) AS RecievedAmt, isnull(round(sum(TotalRecievedAmt), 2), 0) AS TotalRecievedAmt, round(sum(s.FinalAmt) - isnull(sum(TotalRecievedAmt), 0), 2) AS 余额 从卖 s left join Recipt r on s.Invone = r.Invone WHERE s.Party = 'Buyer' 按 s.Invone,s.InvDate,s.Party,s.Party_ID,s.Type,s.Year,s.Terms,s.DueDate,rate 分组 有 (sum(s.FinalAmt) - sum(isnull(TotalRecievedAmt, 0))) 0 按 s.InvDate、s.Invone 排序
我要求像 Invone 这样的输出应该只来一次。并且 TotalPeices、TotalCarats、TotalGrossAmt、TotalDis1、TotalDis2、TotalFinalAmt 不应添加 2 次或 3 次。
如果我有 Invone 没有。15 两次在销售表和 3 次 15 号收据。部分付款。然后在输出 TotalPeices、TotalCarats、TotalGrossAmt、TotalDis1、TotalDis2、TotalFinalAmt 不应添加 3 次。它应该只显示来自销售表的 TotalPeices、TotalCarats、TotalGrossAmt、TotalDis1、TotalDis2、TotalFinalAmt 的总和。从收据表中应显示 TotalHKD、TotalShort、RecievedAmt、TotalRecievedAmt 的总和