| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 600 人关注过本帖
标题:求一段SQL語句
只看楼主 加入收藏
GEORGECHIN
Rank: 2
等 级:论坛游民
帖 子:43
专家分:16
注 册:2009-8-25
结帖率:62.5%
收藏
 问题点数:0 回复次数:0 
求一段SQL語句
一共三個表:A B C
A表字段:關鍵字 類別 建立人 建立時間
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表中的要長兩碼.

各位狐友,知道原因的點解一下.

搜索更多相关主题的帖子: SQL 
2009-09-19 17:31
快速回复:求一段SQL語句
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017645 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved