1

Volusion 用に作成したクエリがありますが、一時テーブルや変数さえも使用できないなど、SQL 機能が非常に制限されています...これは、通常、このタスクを実行しようとする方法です。

しかし、必要な情報を提供するこのクエリがありますが、実行後に Excel で操作する必要があります...必要な結果を得るためにクエリを取得したいと思います。

私が最終的に必要とするのは、google_gender と担当者ごとのコスト/利益です...合計。変数や一時テーブルなしでこれを達成する方法はありますか?

ここに私の現在のクエリがあります:

SELECT
    Products_Joined.Google_Gender,
    REPLACE(REPLACE(REPLACE(REPLACE(Customers.SalesRep_CustomerID,379646,'Dan'),658024,'Owen'),643352,'Mary'),584310,'Pete') as SalesRep,
    SUM(OrderDetails.ProductPrice)*OrderDetails.Quantity as TotalSold,
    SUM(OrderDetails.Vendor_Price)*OrderDetails.Quantity as VendorCost,
    SUM(OrderDetails.ProductPrice)*OrderDetails.Quantity-(OrderDetails.Vendor_Price)*OrderDetails.Quantity as Profit
FROM
    Products_Joined, OrderDetails, Orders, Customers
WHERE
    Products_Joined.ProductCode=OrderDetails.ProductCode 
    AND OrderDetails.OrderID=Orders.OrderID 
    AND Orders.CustomerID=Customers.CustomerID
    AND Orders.OrderDate BETWEEN '05/01/16 00:00' and '05/31/16 23:59'
    AND Customers.SalesRep_CustomerID in ('379646' , '658024' , '643352' , '584310')
    AND Orders.OrderStatus <> 'Cancelled'
GROUP BY    
    Products_Joined.Google_Gender,
    OrderDetails.Quantity,
    OrderDetails.Vendor_Price,
    OrderDetails.ProductPrice,
    Customers.SalesRep_CustomerID

クエリは OrderDetails からアイテム情報を取得する必要があるため、「販売価格」を取得するには、結果のファイルに各注文番号と SKU を並べますが、これは必要ありません。 . 担当者は 4 回だけです :)

4

1 に答える 1

2

性別/担当者ごとの SUM を取得するには、他のグループ化レベルを取り除く必要があります。スキーマやデータがなければ、私は推測していますが、これにより、必要なものが得られる可能性があります。

SELECT
    Products_Joined.Google_Gender,
    REPLACE(REPLACE(REPLACE(REPLACE(Customers.SalesRep_CustomerID,379646,'Dan'),658024,'Owen'),643352,'Mary'),584310,'Pete') as SalesRep,
    SUM(OrderDetails.ProductPrice*OrderDetails.Quantity) as TotalSold,
    SUM(OrderDetails.Vendor_Price*OrderDetails.Quantity) as VendorCost,
    SUM(OrderDetails.ProductPrice*OrderDetails.Quantity)-SUM(OrderDetails.Vendor_Price*OrderDetails.Quantity) as Profit
FROM
    Products_Joined, OrderDetails, Orders, Customers
WHERE
    Products_Joined.ProductCode=OrderDetails.ProductCode 
    AND OrderDetails.OrderID=Orders.OrderID 
    AND Orders.CustomerID=Customers.CustomerID
    AND Orders.OrderDate BETWEEN '05/01/16 00:00' and '05/31/16 23:59'
    AND Customers.SalesRep_CustomerID in ('379646' , '658024' , '643352' , '584310')
    AND Orders.OrderStatus <> 'Cancelled'
GROUP BY    
    Products_Joined.Google_Gender,
    Customers.SalesRep_CustomerID

すべての OrderDetails が SUM 関数内にあることに注意してください。

于 2016-05-23T14:31:51.530 に答える