两关联表查询

hfyanzi 2016-08-04 02:09:18
表A
SEQ_NUM NUMBER(20) NOT NULL,
INPUT_TYPE CHAR(2 CHAR) NOT NULL,
ORDER_SEQ_NUM NUMBER(20) NOT NULL,
FIRST_PLAN_DATE DATE NOT NULL,
LAST_PLAN_DATE DATE NOT NULL,
ARP NUMBER(20,2) DEFAULT 0 NOT NULL,
MEMO VARCHAR2(100 CHAR),
INSERT_TIME DATE,
INSERT_USER_SEQ_NUM NUMBER(20),
LAST_TIME DATE,
LAST_USER_SEQ_NUM NUMBER(20)

表B
SEQ_NUM NUMBER(20) NOT NULL,
INPUT_TYPE CHAR(2 CHAR) NOT NULL,
STATUS CHAR(2 CHAR) NOT NULL,
CASHPLAN_SEQ_NUM NUMBER(20) NOT NULL,
INVOICE_DATE DATE NOT NULL,
INVOICE_NO VARCHAR2(200 CHAR),
ARP NUMBER(20,2) DEFAULT 0 NOT NULL,
INSERT_TIME DATE,
INSERT_USER_SEQ_NUM NUMBER(20),
LAST_TIME DATE,
LAST_USER_SEQ_NUM NUMBER(20),
MEMO VARCHAR2(500 CHAR)

A 与B通过 A.SEQ_NUM B.CASHPLAN_SEQ_NUM 关联

A中有数据
SEQ_NUM, INPUT_TYPE, ORDER_SEQ_NUM, FIRST_PLAN_DATE, LAST_PLAN_DATE, ARP, MEMO, INSERT_TIME, INSERT_USER_SEQ_NUM, LAST_TIME, LAST_USER_SEQ_NUM
33 SO 1 2016/7/28 2016/7/30 3 3 2016/7/28 1 2016/7/28 1
44 SO 112 2016/7/26 2016/7/27 1 1 2016/7/31 21:33:42 1 2016/7/31 21:33:42 1
45 SO 113 2016/8/24 2016/8/26 2 2 2016/8/2 14:56:13 1 2016/8/2 14:56:13 1
61 SO 111 2016/8/4 2016/8/4 1 1 2016/8/4 12:13:12 1 2016/8/4 12:13:12 1
62 SO 111 2016/8/6 2016/8/6 2 2 2016/8/4 12:13:12 1 2016/8/4 12:13:12 1
63 SO 111 2016/8/6 2016/8/26 3 3 2016/8/4 12:13:12 1 2016/8/4 12:13:12 1
1 SO 1 2016/1/1 2016/1/1 1 1 2016/7/28 1 2016/7/28 1
35 SO 2 2016/7/26 2016/7/28 2 2 2016/7/28 1 2016/7/28 1
36 SO 2 2016/7/29 2016/7/30 3 3 2016/7/28 1 2016/7/28 1
38 SO 110 2016/7/29 2016/7/28 1 1 2016/7/28 1 2016/7/28 1
40 SO 112 2016/7/28 2016/7/30 3 3 2016/7/28 1 2016/7/28 1
31 SO 1 2016/7/28 2016/7/28 2 2 2016/7/28 1 2016/7/28 1

B中有数据
SEQ_NUM, INPUT_TYPE, STATUS, CASHPLAN_SEQ_NUM, INVOICE_DATE,INVOICE_NO, ARP, INSERT_TIME, INSERT_USER_SEQ_NUM, LAST_TIME,
LAST_USER_SEQ_NUM
11 SO CN 40 2016/8/4 2431414314 3 2016/8/4 11:47:10 1 2016/8/4 11:47:10 1
13 SO CN 61 2016/8/4 11111 1 2016/8/4 12:13:25 1 2016/8/4 12:13:25 1
14 SO CN 62 2016/8/4 22222 2 2016/8/4 12:19:27 1 2016/8/4 12:19:27 1

现在想得到 a left b b.STATUS<>'CN' 的结果,
62 SO 111 2016/8/6 2016/8/6 2 2 null null null null null null null null
61 SO 111 2016/8/4 2016/8/4 1 1 null null null null null null null null

请教了。以下是我查询条件,
(b.status <> 'CN' OR b.input_type IS NULL)
AND a.order_seq_num = 111





...全文
154 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2016-08-04
  • 打赏
  • 举报
回复
SELECT
*
FROM A
LEFT JOIN B ON  A.SEQ_NUM = B.CASHPLAN_SEQ_NUM AND (b.status <> 'CN' OR b.input_type IS NULL)
WHERE a.order_seq_num = 111
用LEFT时A表条件放在where后面
hfyanzi 2016-08-04
  • 打赏
  • 举报
回复
高手们,来帮助一下。
hfyanzi 2016-08-04
  • 打赏
  • 举报
回复
怎么写SQL才能得到?
shoppo0505 2016-08-04
  • 打赏
  • 举报
回复
不可能得到的

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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