je me trompe résultat de la requête dans la fonction de groupe, j'utilise 3 tables 1. vente avec colonnes AccointId, NetAmount, quantité, date 2. Colums d'achat AccounId, NetAmount, quantité, date 3.Account cOLONNES AccountId, AccountNameItération en requête sql
i fait une procédure stockée qui prend deux entrées comme Date1, Date2
je suis exigé que Account.AccountName, somme des NetAmount d'achat - sOMME de NetAmoount de vente de Date ci-dessous Date amd Somme du montant net de l'achat de la somme nette de vente de la date entre la date1 et la date2, somme du montant net de la vente et de l'achat de la date entre la date1 et la date2
J'utilise ce
SELECT a.SecurityName,
Sum(d.NetAmount) - Sum(e.NetAmount)As 'Opening Amount',
Sum(d.Quantity) - Sum(e.Quantity) As 'Opening Number',
Sum(d.NetAmount)/Sum(d.Quantity)As 'Opening Rate',
Sum(s.Quantity) As 'Number',
Sum(s.NetAmount)/Sum(s.Quantity) As 'Rate',
Sum(s.NetAmount) As 'Amount',
Sum(p.Quantity) As 'Number',
Sum(p.NetAmount)/Sum(p.Quantity) As 'Rate',
Sum( p.NetAmount) AS 'Amount',
IsNull(Sum(d.Quantity), 0) + (Sum(p.Quantity)) - IsNull((Sum(s.Quantity)), 0) As 'Closing Number',
IsNull(Sum(d.NetAmount),0)+(Sum(p.NetAmount)) -IsNull((Sum(s.NetAmount)),0) As 'Closing Amount',
IsNull(Sum(d.Rate),0)+(Sum(p.Rate))-IsNull((Sum(s.Rate)),0) As 'Closing Rate'
FROM Sale s
left Join SecurityAccount a ON s.SecurityAccountId = a.SecurityAccountId
Right JOIN Purchase p ON a.SecurityAccountId = p.SecurityAccountId
Left JOin Purchase d On a.SecurityAccountId=d.SecurityAccountId
And d.Date < @PeriodStart
Left Join Sale e On a.SecurityAccountId=e.SecurityAccountId
And e.Date < @PeriodStart
Group by a.SecurityName
End"
donc je suis en train de valeurs 3 fois plus que prévu
quelqu'un peut me dire ce que dois-je faire ou à droite requête ???
merci à l'avance