兩個表互相引用的條件查詢問題。

skm 2006-04-18 11:28:16
一個表[A] , 被另一個表[B] 的明細表 [C]引用,而此 [A]表一條記錄可以被多張[B]的單據所引用
[A]( fcode varchar(20) primary key , amt money , fdate smalldatetime)
[B]( fcode varchar(20) primary key , fdate smalldatetime)
[C]( fcode varchar(20), fline samllint, sk_code varchar(20), amt money) ,其中 C.fcode 引用B.fcode, (C.fcode, C.fline)構成C的主鍵,C.sk_code 引用 A.fcode

現在 需要限制日期條件A.fdate ,B.fdate都分別小於'2004.01.01',而且B裡所有明細記錄表C中對應的A記錄也滿足此條件,所有引用到A記錄的多張單據頭B表也必須要滿足日期條件。

如何實現此條件下的結果。是否用遞歸循環?
...全文
180 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
itblog 2006-04-19
  • 打赏
  • 举报
回复
那问题解决没?
skm 2006-04-19
  • 打赏
  • 举报
回复
謝謝!這個問題我與同事找到一個方案,就是利用循環,而不用嵌套遞歸
思路是在循環體內刪除不在條件范圍內的互相關聯的表查詢記錄
再判斷是否還有不符合條件的表查詢記錄,如果最後沒有,則退出循環。
利用表這個“絕對”數據。
skm 2006-04-19
  • 打赏
  • 举报
回复
解決了。謝謝!
xiaoku 2006-04-18
  • 打赏
  • 举报
回复
try:

select * from 表A a,表B b,表C c
where c.fcode = b.fcode and c.sk_code = a.fcode
and a.fdate < '2004.01.01'
and not exists(select 1 from 表B where fcode = c.fcode and fdate > '2004.01.01')

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧