求一段SQL語句
一共三個表:A B CA表字段:關鍵字 類別 建立人 建立時間
B表字段:報價單號 客戶名稱
C表字段:報價單號 數量 單價
情況如下:
1.B表和C表的建立人及建立時間都是放在A表的.
2.C表中的報價單號比B表的報價單號固定多兩碼(因為B表中的一個報價需求會有很多個C表中的報價明細).即C表的報價單號除掉最后兩碼和B表中的報價單號是完全相等的.
3.A表中的關鍵字中有B表中和C表中的報價單號.即A表關鍵字+"類別"==B表報價單號+"類別"及A表關鍵字+"類別"==C表報價單號+"類別"是可以建立聯接關系的.
查詢的要求如下:
要把A的建立人,建立時間及B表的建立人建立時間及B,C表所有的字段一起進行查詢.即要得到的查詢結果為:報價單號_A,報價單號_B,建立人_A,建立人_B,建立時間_A,建立時間_B,客戶名稱,數量,單價
我試著用以下SQL語句查:
CREA SQL VIEW V_A SELE B.*,A.建立人,A.建立日期;
FROM B INNER JOIN A ON (UPPER(ALLT(報價單號))+"AAA")==(UPPER(ALLT(關鍵字))+UPPER(ALLT(類別)))
CREA SQL VIEW V_A SELE C.*,A.建立人,A.建立日期;
FROM C INNER JOIN A ON (UPPER(ALLT(報價單號))+"BBB")==(UPPER(ALLT(關鍵字))+UPPER(ALLT(類別)))
注:以上這兩段都可以有正確的查詢結果,故以上代碼的正確性不要質疑
CREA SQL VIEW V_C SELE V_A.*,V_B.*;
FORM V_A INNER JOIN V_B ON UPPER(ALLT(V_A.報價單號))=(SUBS(UPPER(ALLT(V_B.報價單號)),1,12)
注:以上這一段就沒有任何記錄了,但手工分開查兩個表應該要有資料的.
PS:
1.第一,二段SQL中的"AAA"和"BBB"只是說明B表和C表在A表中的類別不同而已.
2.第三段SQL語句中的SUBS()函數中的12,僅表示兩報價單號不完全相同,不一定就是12,也可以是8,9等數字.因為C表中的"報價單號"比B表中的要長兩碼.
各位狐友,知道原因的點解一下.