線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:8798
推到 Plurk!
推到 Facebook!

如何才能只查出所有客戶,指定產品,最新的一次售價

尚未結案
lcc1299
一般會員


發表:39
回覆:42
積分:21
註冊:2004-09-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2019-01-10 14:57:33 IP:175.180.xxx.xxx 未訂閱
如何才能只查出所有客戶,指定產品,最新的一次售價

SELECT C.客戶編號 FROM 主單據 A,單據明細 B,客戶資料 C
WHERE A.單號=B.單號 AND A.客戶編號 = C.客戶編號
AND B.特價 = 0 AND 明細狀態 = 1
AND B.產品料號 = 'A-0000033'
AND ( B.單號 Like '______3%' or B.單號 Like '______9%' )
group by C.客戶編號

以上會出現買過這產品的客戶,查出來為:
B000045
C000043


SELECT C.客戶編號, B.單號 FROM 主單據 A,單據明細 B,客戶資料 C
WHERE A.單號=B.單號 AND A.客戶編號 = C.客戶編號
AND B.特價 = 0 AND 明細狀態 = 1
AND B.產品料號 = 'A-0000033'
AND ( B.單號 Like '______3%' or B.單號 Like '______9%' )
group by B.單號,C.客戶編號

但當我多加了客戶編號,則結果會變為:
B000045 201901300230
C000043 201901300237
C000043 201901300243
C000043 201901900244

我想要第一組的結果,且含有單號。第二組含了單號,但客戶重復了~(重復的客戶只取最新資料B單據明細中有建檔日期)~該怎麼限制呢!!能提示我嗎!~
我只想要有叫過該產品的客戶,最新的一次售價,謝謝。
編輯記錄
lcc1299 重新編輯於 2019-01-10 15:56:42, 註解 無‧
lcc1299
一般會員


發表:39
回覆:42
積分:21
註冊:2004-09-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2019-01-10 16:04:48 IP:175.180.xxx.xxx 未訂閱
羅輯錯誤語法,沒辦法刪除,我清空。
編輯記錄
lcc1299 重新編輯於 2019-01-10 16:16:45, 註解 無‧
lcc1299 重新編輯於 2019-01-11 16:26:47, 註解 無‧
lcc1299
一般會員


發表:39
回覆:42
積分:21
註冊:2004-09-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2019-01-10 18:36:18 IP:175.180.xxx.xxx 未訂閱
羅輯錯誤語法,沒辦法刪除,我清空。
編輯記錄
lcc1299 重新編輯於 2019-01-11 16:27:27, 註解 無‧
lcc1299
一般會員


發表:39
回覆:42
積分:21
註冊:2004-09-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2019-01-10 20:09:13 IP:175.180.xxx.xxx 未訂閱
羅輯錯誤語法,沒辦法刪除,我清空。
編輯記錄
lcc1299 重新編輯於 2019-01-11 16:27:49, 註解 無‧
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2019-01-10 21:12:23 IP:1.163.xxx.xxx 未訂閱
hi lcc1299,

你列了幾個問題, 第一個問題或許可以用以下的解法
這是以sql server語法寫的

[code sql]
select distinct 客戶,p.產品,
(select top 1 單價
from 單據明細 dd join 主單據 mm on dd.單號=mm.單號
where 客戶=m.客戶 and 產品=p.產品
order by dd.單號 desc
) as 該客戶該產品最新價
from 主單據 m join 單據明細 d on m.單號=d.單號 join 產品 p on d.產品=p.產品
--where p.產品='P1'
[/code]

===================引 用 lcc1299 文 章===================
如何才能只查出所有客戶,指定產品,最新的一次售價

編輯記錄
pedro 重新編輯於 2019-01-10 21:15:18, 註解 無‧
lcc1299
一般會員


發表:39
回覆:42
積分:21
註冊:2004-09-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2019-01-10 22:53:57 IP:175.180.xxx.xxx 未訂閱
hi pedro 大,
我依照你給我的code下去做修改
select distinct css.客戶名稱,d.產品料號,
(select top 1 dd.單價
from 單據明細 dd join 主單據 mm on dd.單號=mm.單號 join 客戶資料 cs on mm.客戶編號=cs.客戶編號

order by dd.單號 desc
) as 該客戶該產品最新價
from 主單據 m join 單據明細 d on m.單號=d.單號 join 客戶資料 css on m.客戶編號 =css.客戶編號
where d.產品料號='A-0000033'
AND ( d.單號 Like '______3%' or d.單號 Like '______9%' )
AND d.特價 = 0 AND 明細狀態 = 1

出來的資訊:
大張偉(藍正) A-0000033 555
飛輪海保養 A-0000033 555
現金客大爺 A-0000033 555
瑋大國際 A-0000033 555
錢來也國際 A-0000033 555

我在(子查詢)價格的判斷上有少了什麼嗎?每個人的價格不同。謝謝

我的資料表關係結構如下:

客戶資料(客戶編號,客戶名稱)
主單據(單號,客戶編號)
單據明細(單號,產品料號,單價,建立日期)
庫存資料(產品料號,品名)

可以顯示成:單號、客戶名稱、單價、建立日期
條件是:指定產品料號,且消費過的客戶,最近的一筆。這樣該怎麼下語法呢?謝謝麻煩了!




===================引 用 pedro 文 章===================
hi lcc1299,

你列了幾個問題, 第一個問題或許可以用以下的解法
這是以sql server語法寫的

[code sql]
select distinct 客戶,p.產品,
(select top 1 單價
from 單據明細 dd join 主單據 mm on dd.單號=mm.單號
where 客戶=m.客戶 and 產品=p.產品
order by dd.單號 desc
) as 該客戶該產品最新價
from 主單據 m join 單據明細 d on m.單號=d.單號 join 產品 p on d.產品=p.產品
--where p.產品='P1'
[/code]

===================引 用 lcc1299 文 章===================
如何才能只查出所有客戶,指定產品,最新的一次售價

編輯記錄
lcc1299 重新編輯於 2019-01-11 01:51:32, 註解 無‧
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2019-01-11 07:33:18 IP:1.163.xxx.xxx 未訂閱
子查詢裡where要下條件及根據你要order by的欄位降序

order by dd.單號 desc
編輯記錄
pedro 重新編輯於 2019-01-11 07:34:06, 註解 無‧
系統時間:2024-11-21 14:21:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!