0

大学の課題用のアプリケーションを作成しています。データベースには Visual Basic 2010 と Microsoft Access を使用しています。

私は顧客が製品を注文できるフォームを持っています。各製品には設定された価格があります。たとえば、製品 1 は 1 ポンドですが、一部の顧客はより安い価格で製品を入手するため、「特別価格」テーブルがあり、特別価格テーブルには次を含む行が含まれます。 「customerid」「productid」および「specialprice」。

価格を表示する方法を知る必要があります。顧客が product1 を選択した場合、最初にアプリケーションで特別価格があるかどうかを確認し、通常価格を表示するだけでない場合は、

ありがとう、

ジャック。

4

1 に答える 1

0

Customer に特別価格がない場合は null

SELECT p.Price, c.CustomerID, sp.SpecialPrice, IFNULL(sp.SpecialPrice, p.Price) As UsedPrice
FROM Product p
LEFT JOIN SpecialPrice sp ON p.ProductID = sp.ProductID
AND sp.CustomerID = 123

私の答えは SQL Server に基づいています。MSAccess に翻訳していただければ幸いです。要点は、製品テーブルを現在の顧客がいる特別価格テーブルに結合することです。特別価格が利用可能な場合はそれを使用し、そうでない場合は製品の価格を使用します

またはコード内

if(row["SpecialPrice"] != null) // if(row["SpecialPrice"] != DBNull.Value) --- instead
  price = row["SpecialPrice"];
else
  price = row["Price"];
于 2012-09-28T21:05:22.193 に答える