Note that there are some explanatory texts on larger screens.

plurals
  1. POInner join causes multilplying of values
    primarykey
    data
    text
    <p>Got such query:</p> <pre><code> SELECT CDV.SetId ,CDV.DateImported ,CDV.ProductName ,COALESCE(sum(CDV.TransferedCapital),0) as [TransferedCapital] ,COALESCE(sum(case when CA.CaseActionDefinitionId = 87 then CDV.TransferedCapital else 0 end),0) as [WithdrawValue] ,COALESCE(sum(CDV.TransferedCapital)-sum(case when CA.CaseActionDefinitionId = 87 then CDV.TransferedCapital else 0 end),0) as [Left] ,COALESCE((sum(case when CA.CaseActionDefinitionId = 87 then CDV.TransferedCapital else 0 end)/sum(CDV.TransferedCapital)*100),0) as [Withdraw%] ,COALESCE(sum(PCH.PaymentValue),0) as [PaymentValue] ,COALESCE(datepart(week,PS.SessionDate),0) as [Week] from CaseActionHistory as CA join CaseDetailsView as CDV on CA.CaseDetailId = CDV.CaseDetailsId join PaymentCaseHistory as PCH on PCH.ActionArchiveId = CA.CaseActionId join PaymentSession as PS on PS.SessionId = PCH.SessionId where (CDV.ClientId = @ClientId or @ClientId IS NULL) and (CA.IsDeleted IS NULL or CA.IsDeleted &lt;&gt; 'True') and (CDV.SetId = @SetId or @SetId IS NULL) group by CDV.SetId, CDV.DateImported, CDV.ProductName, datepart(week,PS.SessionDate) UNION SELECT CDV.SetId ,CDV.DateImported ,CDV.ProductName ,COALESCE(sum(CDV.TransferedCapital),0) as [TransferedCapital] ,COALESCE(sum(case when CA.CaseActionDefinitionId = 87 then CDV.TransferedCapital else 0 end),0) as [WithdrawValue] ,COALESCE(sum(CDV.TransferedCapital)-sum(case when CA.CaseActionDefinitionId = 87 then CDV.TransferedCapital else 0 end),0) as [Left] ,COALESCE((sum(case when CA.CaseActionDefinitionId = 87 then CDV.TransferedCapital else 0 end)/sum(CDV.TransferedCapital)*100),0) as [Withdraw%] ,COALESCE(sum(CDV.PaymentValue),0) as [PaymentValue] ,'0' from CaseActionHistory as CA join CaseDetailsView as CDV on CA.CaseDetailId = CDV.CaseDetailsId where (CDV.ClientId = @ClientId or @ClientId IS NULL) and (CA.IsDeleted IS NULL or CA.IsDeleted &lt;&gt; 'True') and (CDV.SetId = @SetId or @SetId IS NULL) group by CDV.SetId, CDV.DateImported, CDV.ProductName order by CDV.SetId </code></pre> <p>First part of query works as it should. In second part (after union all) </p> <pre><code>join CaseDetailsView as CDV on CA.CaseDetailId = CDV.CaseDetailsId </code></pre> <p>makes values inside</p> <pre><code>,COALESCE(sum(CDV.TransferedCapital),0) as [TransferedCapital] ,COALESCE(sum(case when CA.CaseActionDefinitionId = 87 then CDV.TransferedCapital else 0 end),0) as [WithdrawValue] ,COALESCE(sum(CDV.TransferedCapital)-sum(case when CA.CaseActionDefinitionId = 87 then CDV.TransferedCapital else 0 end),0) as [Left] ,COALESCE((sum(case when CA.CaseActionDefinitionId = 87 then CDV.TransferedCapital else 0 end)/sum(CDV.TransferedCapital)*100),0) as [Withdraw%] ,COALESCE(sum(CDV.PaymentValue),0) as [PaymentValue] </code></pre> <p>to be multiplied </p> <p>I don't really have an idea how to pass it. Any ideas?</p> <p>After removing rows connected with CaseActionHistory in 2nd and join itself the values are correct.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload