2

私は2つのテーブルSales&Purchase、SalesId、Rate、Quantity、Date、CompanyId、UserIDのフィールドを持つSalesテーブルを持っています。フィールド PurchaseId、Rate、Quantity、Date、CompanyId、UserID を持つ購入テーブル。

Rate*Quantity が最も高いいずれかのテーブルからレコードを選択したいと考えています。

SELECT SalesId Or PurchaseId FROM Sales,Purchase 
where Sales.UserId=Purchase.UserId and Sales.CompanyId=Purchase.CompanyId 
AND Sales.Date=Current date 
AND Purchase.Date=Current date AND Sales.UserId=1 
AND Purchase.UserId=1 AND Sales.CompanyId=1 AND Purchase.ComoanyId=1
4

3 に答える 3

1

試す:

select top 1 * from
(select SalesId ID, Rate, Quantity, 'Sales' TransactionType
 from sales
 union all
 select PurchaseId ID, Rate, Quantity, 'Purchase' TransactionType
 from purchase)
order by Rate * Quantity desc
于 2013-06-29T09:48:38.857 に答える
0

できるよ

SELECT TOP 1 * FROM ... ORDER BY Rate * Quantity DESC

また

SELECT ... WHERE Rate * Quantity = (SELECT max(Rate * Quantity) FROM ... )

また、2 つの等しい「最大」レコードがあるかどうかを検討することもできます。(2 番目のオプションは両方を返し、最初のオプションは 1 つだけをランダムに返します)

于 2013-06-29T09:44:59.583 に答える
0

おそらくあなたは使用することができMAXますUNION ALL

SELECT MAX(RateQty) FROM
( SELECT Rate*Quantity as RateQty
  FROM Sales
  WHERE Sales.UserId=1 AND Sales.CompanyId=1 AND Sales.Date = GETDATE()
  UNION ALL
  SELEC Rate*Quantity as RateQty
  FROM Purchase
  WHERE Purchase.UserId=1 AND Purchase.CompanyId=1 AND  Purchase.Date= GETDATE()
) SalesPurchase
于 2013-06-29T09:49:39.033 に答える