Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Die SQL Server-Unterabfrage hat mehr als 1 Wert zurückgegeben. Dies ist nicht erlaubt, wenn die Unterabfrage auf =, !=, <, <=,>,>=folgt

Versuchen Sie Folgendes:

SELECT
    od.Sku,
    od.mf_item_number,
    od.Qty,
    od.Price,
    s.SupplierId,
    s.SupplierName,
    s.DropShipFees,
    si.Price as cost
FROM
    OrderDetails od
    INNER JOIN Supplier s on s.SupplierId = od.Mfr_ID
    INNER JOIN Group_Master gm on gm.Sku = od.Sku
    INNER JOIN Supplier_Item si on si.SKU = od.Sku and si.SupplierId = s.SupplierID
WHERE
    od.invoiceid = '339740'

Dadurch werden mehrere Zeilen zurückgegeben, die bis auf die cost identisch sind Säule. Sehen Sie sich die unterschiedlichen Kostenwerte an, die zurückgegeben werden, und finden Sie heraus, was die unterschiedlichen Werte verursacht. Fragen Sie dann jemanden, welchen Kostenwert er möchte, und fügen Sie der Abfrage die Kriterien hinzu, die diese Kosten auswählen.