RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [DB] SQL 2008查詢條件的問題 修改問題   字型大小:||| 
bobbook
銀驢友〔中級〕
等級: 13等級: 13等級: 13等級: 13
啊 廢業黑化了...... 斯 壞掉了(゚Д゚ )

十週年紀念徽章(五級)  

今日心情

 . 積分: 664
 . 文章: 979
 . 收花: 5871 支
 . 送花: 5823 支
 . 比例: 0.99
 . 在線: 4923 小時
 . 瀏覽: 29696 頁
 . 註冊: 7242
 . 失蹤: 1237
 . 地球 亞洲 台灣
#1 : 2011-3-28 01:45 PM     全部回覆 引言回覆

2011-03-29

總算解決了

TIPS

left join:       返回「表名1」的全部行,對於「表名2」中,不滿足on條件的記錄用空值替換。
rigth join:     返回「表名2」的全部行,對於「表名1」中,不滿足on條件的記錄用空值替換。

設定指定欄位 ISNULL查詢即可

2011-03-29

哈哈哈哈哈哈哈哈
寫程式寫太多阿達了
居然連敘述問題也敘述錯  抱歉

大家  
好久不見
廢業目前在一家NPO做MIS

目前被荼毒中......

OK...廢話不多說
這是這幾天廢業被荼毒的原因

目前有兩個TableA以及TableB

TableA紀錄訂單編號、數量、下訂日期......等等
TableB則紀錄訂單A.訂單編號的收費紀錄(如實收訂金以及實收租金......等等)

現在大頭出了一個問題
他要列出訂單編號、數量、下訂日期......等等條件作為查詢依據下
SQL如下(舉例)
SELECT dbo.TableA.*, dbo.TableB.* FROM dbo.TableA INNER JOIN dbo.TableB ON dbo.TableA.訂單編號 = dbo.TableB.訂單編號 WHERE + 程式的搜尋條件

大頭目前要在這個搜尋條件下
列出哪一筆訂單沒有收費紀錄

也就是在同一筆TableA的訂單編號下找TableA以及TableB中"TableA.訂單編號" <> EOF AND  "TableB.訂單編號" = EOF的條件下
列出所有TableA的的資料

這我要如何做呀

[bobbook 在  2011-3-29 11:00 AM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
bobbook
銀驢友〔中級〕
等級: 13等級: 13等級: 13等級: 13
啊 廢業黑化了...... 斯 壞掉了(゚Д゚ )

十週年紀念徽章(五級)  

今日心情

 . 積分: 664
 . 文章: 979
 . 收花: 5871 支
 . 送花: 5823 支
 . 比例: 0.99
 . 在線: 4923 小時
 . 瀏覽: 29696 頁
 . 註冊: 7242
 . 失蹤: 1237
 . 地球 亞洲 台灣
#2 : 2011-3-28 05:43 PM     全部回覆 引言回覆


引用:
shinnuei寫到:
where  a.訂單編號 = 條件值 and a.數量 = 條件值 and a.下訂日期 = 條件值
AND B.收費紀錄 = NULL

不知道對不對


這個我試過了
得到的結果都是NULL
最主要是因為"B.收費紀錄 = NULL"

原因是大頭在作系統分析的時候設定
產生訂單不會對TableB有影響
除非交訂金或交租金

哈哈哈哈哈哈哈哈哈哈哈哈哈哈    淚流滿面中......

另外我有嘗試使用

[SQL 語句 1]
MINUS
[SQL 語句 2]

結果還是被打槍
SQL 2008里面把它當作兩個查詢條件來看
快哭死了

目前在跟大頭裝死......

[bobbook 在  2011-3-28 05:47 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
bobbook
銀驢友〔中級〕
等級: 13等級: 13等級: 13等級: 13
啊 廢業黑化了...... 斯 壞掉了(゚Д゚ )

十週年紀念徽章(五級)  

今日心情

 . 積分: 664
 . 文章: 979
 . 收花: 5871 支
 . 送花: 5823 支
 . 比例: 0.99
 . 在線: 4923 小時
 . 瀏覽: 29696 頁
 . 註冊: 7242
 . 失蹤: 1237
 . 地球 亞洲 台灣
#3 : 2011-3-29 10:55 AM     全部回覆 引言回覆

感謝呀

我終於找到了

關鍵在於LEFT JOIN 以及TableB.訂單編號 ISNULL

目前在View底下已經可以找到正確的資料了

SQL

SELECT dbo.TableA.*,dbo.TableB.*
FROM dbo.TableA LEFT OUTER JOIN dbo.TableB ON dbo.TableA.訂單編號 = dbo.TableB.訂單編號
WHERE     (dbo.TableB.訂單編號 IS NULL)

總算可以把萬惡的不繳訂金以及租金的成員抓出來了

感謝各位的提醒以及解惑



TIPS

left join:       返回「表名1」的全部行,對於「表名2」中,不滿足on條件的記錄用空值替換。
rigth join:     返回「表名2」的全部行,對於「表名1」中,不滿足on條件的記錄用空值替換。

設定指定欄位 ISNULL查詢即可

[bobbook 在  2011-3-29 10:59 AM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-4-28 10:17 PM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.022675 second(s), 7 queries , Qzip disabled