[英]How could/should I write this SQL query?
我需要編寫一個SQL查詢來列出我們產品的客戶價格。 我們有一個標准價格表customer_no = 0
,還有一個特定於客戶的價格表customer_no = XXXX
。
我很難理解如何獲得查詢以返回客戶特定產品的價格(如果已獲得產品價格),或者是否未降至標准價格。
在標准價格表上獲取所有產品和價格
select prices.product_id, products.product_desc, prices.m2
from prices, products
where prices.product_id = products.product_id
and prices.customer_no = 0
order by prices.product_id asc
獲得客戶專門報價的所有產品和價格
select prices.product_id, products.product_desc, prices.m2
from prices, products
where prices.product_id = products.product_id
and prices.customer_no = $_SESSION['customer']
order by prices.product_id asc
我如何執行第一個查詢,但是如果客戶有自己的價格,則用該價格替換? 這有可能嗎?
提前致謝。
史蒂夫
編輯:對不起,錯過了原始帖子的兩個查詢中的第三行。
您必須與prices
表連接兩次,一次輸入標價,然后輸入報價。 對於后者,請使用LEFT JOIN
,因為某些產品沒有報價。 然后使用NVL
缺省從報價到標價。
SELECT products.product_id, products.product_desc, NVL(p2.m2, p1.m2)
FROM products
JOIN prices p1 ON p1.product_id = products.product_id
LEFT JOIN prices p2 ON p2.product_id = products.product_id
AND p2.customer_no = $_SESSION['customer']
WHERE p1.customer_no = 0
嘗試:
select prices.product_id, products.product_desc, prices.m2
from prices, products
where prices.customer_no = nvl($_SESSION['customer'], 0)
order by prices.product_id asc
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.