SELECT hd_sctzd_dtl.tlno,
hd_sctzd_dtl.perqty,
hd_sctzd_dtl.totalqty,
hd_sctzd_dtl.unitno,
hd_sctzd_dtl.unitnocims,
hd_sctzd_dtl.bpno,
hd_sctzd.scno,
hd_sctzd.itemno,
isnull(send.sendqty,0) as sqty
FROM hd_sctzd_dtl,
hd_sctzd,
(
SELECT tlno,bpno,sum(sqty) as sendqty
from hd_clckck,hd_clckck_dtl
WHERE ( hd_clckck_dtl.sendno=hd_clckck.sendno )
GROUP BY tlno,bpno
) as send
WHERE ( hd_sctzd_dtl.tlno = hd_sctzd.tlno )
and hd_sctzd_dtl.bpno *=send.bpno and hd_sctzd_dtl.tlno *=send.tlno
ORDER BY hd_sctzd.scno,hd_sctzd_dtl.tlno,hd_sctzd_dtl.bpno ASC 如果返回hd_sctzd_dtl.totalqty = sqty 或者hd_sctzd_dtl.totalqty <> sqty的结果集???谢谢!
hd_sctzd_dtl.perqty,
hd_sctzd_dtl.totalqty,
hd_sctzd_dtl.unitno,
hd_sctzd_dtl.unitnocims,
hd_sctzd_dtl.bpno,
hd_sctzd.scno,
hd_sctzd.itemno,
isnull(send.sendqty,0) as sqty
FROM hd_sctzd_dtl,
hd_sctzd,
(
SELECT tlno,bpno,sum(sqty) as sendqty
from hd_clckck,hd_clckck_dtl
WHERE ( hd_clckck_dtl.sendno=hd_clckck.sendno )
GROUP BY tlno,bpno
) as send
WHERE ( hd_sctzd_dtl.tlno = hd_sctzd.tlno )
and hd_sctzd_dtl.bpno *=send.bpno and hd_sctzd_dtl.tlno *=send.tlno
ORDER BY hd_sctzd.scno,hd_sctzd_dtl.tlno,hd_sctzd_dtl.bpno ASC 如果返回hd_sctzd_dtl.totalqty = sqty 或者hd_sctzd_dtl.totalqty <> sqty的结果集???谢谢!
解决方案 »
- 请问如何批量迁移数据库作业
- 行列合并 查询结果作为查询条件
- 求一SQL表达式,前三名有分,20,10,5
- 请教SQLSERVER中有这样一个函数没有
- 如何比较两个结果集是否相等?
- 纵向变横向的方法,高手请入。
- SQLserver 中 一个表中 有几十万的记录, 通过ADO像这个表中录入一条数据, 和取出一条记录的速度大概有多少?
- 奇怪的问题?(高手来看)
- 推荐一个根据文本批量生成Insert Into语句的小软件 (不恶意定贴就有分)
- 我想把SELECT 的WHERE 条件部分以变量形式传入一个存储程序,如何实现?
- 请问在sql server2000中插入记录时是不是不可以同时插入多条?
- 要得到两个日期段之间的记录sql语句怎么写
SELECT hd_sctzd_dtl.tlno,
hd_sctzd_dtl.perqty,
hd_sctzd_dtl.totalqty,
hd_sctzd_dtl.unitno,
hd_sctzd_dtl.unitnocims,
hd_sctzd_dtl.bpno,
hd_sctzd.scno,
hd_sctzd.itemno,
isnull(send.sendqty,0) as sqty
FROM hd_sctzd_dtl,
hd_sctzd,
(
SELECT tlno,bpno,sum(sqty) as sendqty
from hd_clckck,hd_clckck_dtl
WHERE ( hd_clckck_dtl.sendno=hd_clckck.sendno )
GROUP BY tlno,bpno
) as send
WHERE ( hd_sctzd_dtl.tlno = hd_sctzd.tlno )
and hd_sctzd_dtl.bpno *=send.bpno and hd_sctzd_dtl.tlno *=send.tlno
and hd_sctzd_dtl.totalqty = isnull(send.sendqty,0) --
ORDER BY hd_sctzd.scno,hd_sctzd_dtl.tlno,hd_sctzd_dtl.bpno ASC --hd_sctzd_dtl.totalqty <> sqty
SELECT hd_sctzd_dtl.tlno,
hd_sctzd_dtl.perqty,
hd_sctzd_dtl.totalqty,
hd_sctzd_dtl.unitno,
hd_sctzd_dtl.unitnocims,
hd_sctzd_dtl.bpno,
hd_sctzd.scno,
hd_sctzd.itemno,
isnull(send.sendqty,0) as sqty
FROM hd_sctzd_dtl,
hd_sctzd,
(
SELECT tlno,bpno,sum(sqty) as sendqty
from hd_clckck,hd_clckck_dtl
WHERE ( hd_clckck_dtl.sendno=hd_clckck.sendno )
GROUP BY tlno,bpno
) as send
WHERE ( hd_sctzd_dtl.tlno = hd_sctzd.tlno )
and hd_sctzd_dtl.bpno *=send.bpno and hd_sctzd_dtl.tlno *=send.tlno
and hd_sctzd_dtl.totalqty != isnull(send.sendqty,0) --
ORDER BY hd_sctzd.scno,hd_sctzd_dtl.tlno,hd_sctzd_dtl.bpno ASC
执行结果是:服务器: 消息 303,级别 16,状态 1,行 1
表 'send' 是外联接子句的内部成员。如果该表同时也包含在常规联接子句中,那么这种情况是不允许的。我上面的语句意思是这样的:
hd_sctzd,hd_sctzd_dtl是应发表,hd_clckck,hd_clckck_dtl是出库表,我要统计有多少货物没有出库.(一次应发可以分多次出库)谢谢!!
SELECT hd_sctzd_dtl.tlno,
hd_sctzd_dtl.perqty,
hd_sctzd_dtl.totalqty,
hd_sctzd_dtl.unitno,
hd_sctzd_dtl.unitnocims,
hd_sctzd_dtl.bpno,
hd_sctzd.scno,
hd_sctzd.itemno,
isnull(send.sendqty,0) as sqty
FROM hd_sctzd_dtl
Inner Join
hd_sctzd
On hd_sctzd_dtl.tlno = hd_sctzd.tlno
Left Join
(
SELECT tlno,bpno,sum(sqty) as sendqty
from hd_clckck,hd_clckck_dtl
WHERE ( hd_clckck_dtl.sendno=hd_clckck.sendno )
GROUP BY tlno,bpno
) as send
On hd_sctzd_dtl.bpno =send.bpno and hd_sctzd_dtl.tlno =send.tlno
where hd_sctzd_dtl.totalqty != isnull(send.sendqty,0) --
ORDER BY hd_sctzd.scno,hd_sctzd_dtl.tlno,hd_sctzd_dtl.bpno ASC
在 MicrosoftR SQL Server? 2000 之前的版本中,左、右外部聯結 (Outer Join) 條件必須在 WHERE 子句中使用 *= 與=* 運算子來指定。部份情況中,這種語法可以使用多種方式解譯,可能會導致模糊不清的查詢。SQL-92 批評在 FROM 子句中指定外部聯結的語法而且 SQL-92 不會產生這種模稜兩可的情形,因為 SQL-92 語法更精確,有關在 WHERE 子句中舊的 Transact-SQL 外部聯結語法的詳細資訊並不包含在這個版本中。在未來 SQL Server 版本中可能不會支援這個語法。任何使用 Transact-SQL 外部聯結的陳述式都應該改為使用 SQL-92 的語法。無論是 FROM 或 WHERE 子句中內部聯結的規格,SQL-92 標準並不支援。WHERE 子句中指定的內部聯結不會有如同 Transact-SQL 外部聯結語法中模稜兩可的相同問題。