簡體   English   中英

我怎么/應該寫這個SQL查詢?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM