以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教这样查询统计如何写?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=14570)

--  作者:baoxyang
--  发布时间:2011/11/24 9:43:00
--  请教这样查询统计如何写?

在SQL中有两表A和B,我想得到两表中“单号”相同及“状态”不同,并且表A中的状态不等于“出车”和“计划”;或者在表A中有的单号在表B中不存在。

我想利用SQLJoinTableBuilder得到以上结果s1

Dim jb As New SQLJoinTableBuilder("查询表1","表A")
Dim
sl As String
jb
.ConnectionName = "Sale"
jb
.AddTable("表A","单号","表B","单号")

以下如何编写,请各位指教!
sl = jb.BuildSQL()
Output.Show(sl)


--  作者:狐狸爸爸
--  发布时间:2011/11/24 10:38:00
--  

呵呵,这种问题没有办法SQLJoinTableBuilder解决的,去一些有SQL高手的论坛问问吧,例如csdn


--  作者:baoxyang
--  发布时间:2011/11/24 13:03:00
--  
Dim ss1 As String = "Select * from 派车计划表 where 计划单号 not In (Select 计划单号 from 车辆配送表) and 状态 <> \'运输完成\' and 状态 <> \'作废\'"
Dim ss2 As String = "Select a.* from {派车计划表} a left join 车辆配送表 b on a.计划单号 = b.计划单号 where (a.状态 <> \'运输完成\') and  b.状态 = \'回车确认\'"
cmd.CommandText = ss1
Dim dt1 As DataTable = cmd.ExecuteReader()
cmd.CommandText = ss2
Dim dt2 As DataTable = cmd.ExecuteReader()
如何把dt1及dt2的数据同时加载到一张表中呢?

--  作者:don
--  发布时间:2011/11/24 13:11:00
--  

五、UNION 运算符

UNION运算符用于组合两个查询的结果。
例如有一个客户表,一个供应商表,我需要得到所有在中国的客户和供应商的名称和地址。
因为数据位于不同的表中,显然,我们需要用两个查询才能完成任务:

SELECT 公司名称, 地址 FROM {客户} WHERE 国家 = \'中国\' UNION SELECT 公司名称, 地址 FROM {供应商} WHERE 国家 = \'中国\'

两个查询的字段名称、个数、类型必须完全一致才行。


--  作者:baoxyang
--  发布时间:2011/11/24 13:44:00
--  
谢谢指点!!