it-swarm.com.de

Wie verwende ich die Summenfunktion in der where-Klausel in SQL Server?

Ich bin neu in SQL Server. Ich möchte mit der Funktion sum zwei Spalten gleichstellen. Hier finden Sie die unten stehende Abfrage.

select top 1000 
    o.orderamount, sum(oi.amount), oi.orderid 
from 
    orders o 
inner join 
    orderitem oi on o.orderid = oi.orderid 
where 
    orderamount = sum(oi.amount)
group by  
    oi.orderid, orderamount
order by 
    oi.orderid desc

Immer wenn ich diesen Code ausführe, erhalte ich eine Fehlermeldung.

Bitte hilf mir.

6
Pavan Reddy

Sie können einfach MIT verwenden:

select  top 1000 o.orderamount, sum(oi.amount), oi.orderid 
from orders o 
inner join orderitem oi on o.orderid = oi.orderid 
group by oi.orderid ,orderamount
HAVING orderamount = sum(oi.amount)
order by oi.orderid desc
9
gotqn

Sie können dies verwenden:

select  top 1000 o.orderamount, oi.amount, oi.orderid 
from orders o 
inner join (select orderid, sum(amount) amount from orderitem group by orderid) orderitem 
oi on o.orderid = oi.orderid and orderamount = oi.amount
order by oi.orderid desc
0
Md. Suman Kabir

Versuchen Sie, HAVING anstelle von WHERE-Klauseln in Summenabfragen zu verwenden. Außerdem: Fügen Sie Einrückungen und UPPER CASE hinzu, um die Lesbarkeit zu verbessern

SELECT TOP 1000  o.OrderAmount, sum(oi.Amount), oi.OrderID 
  FROM  Orders o 
        INNER JOIN OrderItem oi ON oi.OrderID = o.OrderID
  GROUP BY  oi.OrderID, OrderAmount
    HAVING  OrderAmount = sum(oi.Amount)
  ORDER BY  oi.OrderID DESC;
0
TheKevlar