Foxtable(狐表)用户栏目专家坐堂 → 各位老师,关于多表查询表的问题【已解决,Don高手的SQL,各位狐友看看】


  共有7194人关注过本帖树形打印复制链接

主题:各位老师,关于多表查询表的问题【已解决,Don高手的SQL,各位狐友看看】

帅哥哟,离线,有人找我吗?
gsnake
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:5263 威望:0 精华:0 注册:2012/6/6 14:37:00
各位老师,关于多表查询表的问题【已解决,Don高手的SQL,各位狐友看看】  发帖心情 Post By:2013/4/28 9:02:00 [只看该作者]

关于多表查询,害的一夜未眠,没有结果!请各位大师帮忙!!
我用了SQL ,也用了狐爸的查询表生成器!就是得不到结果!!各位大师抽空帮帮忙!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar
 
在压缩文件里,我做了一张表 “我想要的结果”
 

 

图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2013-5-16 11:23:27编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
gsnake
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:5263 威望:0 精华:0 注册:2012/6/6 14:37:00
  发帖心情 Post By:2013/4/28 17:47:00 [只看该作者]

看来都放假了

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/28 17:50:00 [只看该作者]

能不能说下你想干嘛.不明不白的.就发个文件.丢一下一句得不到结果. 

 回到顶部
帅哥哟,离线,有人找我吗?
gsnake
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:5263 威望:0 精华:0 注册:2012/6/6 14:37:00
  发帖心情 Post By:2013/4/28 17:51:00 [只看该作者]

我把想要的结果放到这个文件的一个表里了


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/28 17:59:00 [只看该作者]

你想要的是什么结果?图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
gsnake
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:5263 威望:0 精华:0 注册:2012/6/6 14:37:00
  发帖心情 Post By:2013/4/28 18:06:00 [只看该作者]

bin老师!在一楼有啊!是这样的!压缩文件里!

“我想得到的查询”表是我手工做的,不是查询出来的,我就是想用SQL 或 狐爸的查询表生成器 得到这个结果  


 回到顶部
帅哥哟,离线,有人找我吗?
don
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2013/4/28 22:06:00 [只看该作者]

Dim jb As new SQLJoinTableBuilder("统计表","入库明细")
Dim dt1 As fxDataSource
jb.AddTable("入库明细","入库编号","入库单","入库编号")
jb.AddExp("客户编号","客户编号")
jb.AddExp("客户名称","商品编号")
jb.AddExp("入库编号","{入库单}.入库编号")
jb.Addexp("存入商品","商品编号")
jb.Addexp("操作日期","存入日期")
jb.Addexp("入库数量","数量")
jb.Addexp("入库单价","单价")
jb.Addexp("入库金额","金额")
dt1 = jb.BuildDataSource()
jb = new SQLJoinTableBuilder("A1","兑换明细")
Dim dt2 As fxDataSource
jb.AddTable("兑换明细","兑换编号","兑换表","兑换编号")

jb.AddCols("客户编号","{兑换明细}.兑换编号")
jb.Addexp("兑换商品","商品编号")
jb.Addexp("操作日期","兑换日期")
jb.Addexp("兑换数量","数量")
jb.Addexp("兑换单价","单价")
jb.Addexp("兑换金额","金额")
dt2 = jb.BuildDataSource()
Dim nms As String() = {"客户编号","操作日期"} '指定连接列
dt1.Combine(nms,dt2,nms)
dt1.Show("统计表") '显示统计结果
Tables("统计表").StopRedraw
For Each r As Row In Tables("统计表").Rows
    Dim dr As DataRow = DataTables("客户信息").Find("客户编号 = '" & r("客户编号") & "'")
    If dr IsNot Nothing Then
        r("客户名称") = dr("客户名称")
    End If
Next
Tables("统计表").ResumeRedraw
Tables("统计表").sort="操作日期"
MainTable = Tables("统计表")


 回到顶部
帅哥哟,离线,有人找我吗?
gsnake
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:5263 威望:0 精华:0 注册:2012/6/6 14:37:00
  发帖心情 Post By:2013/4/28 22:42:00 [只看该作者]

don 真心的感谢!要是在一起!一定请你大餐一顿!万分感谢!!!万万分感谢!!!

 回到顶部
帅哥哟,离线,有人找我吗?
gsnake
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:5263 威望:0 精华:0 注册:2012/6/6 14:37:00
  发帖心情 Post By:2013/4/29 7:58:00 [只看该作者]

我想学一下SQL的写法:
我写了半天也没写出don的结果:各位研究一下

Select * from 
(Select  {客户信息}.客户编号,客户名称,{入库单}.入库编号,存入日期,商品编号,数量,单价 From ({入库明细} Inner JOIN {入库单} ON {入库单}.[入库编号] = {入库明细}.[入库编号]) Inner JOIN {客户信息} ON {客户信息}.[客户编号] = {入库单}.[客户编号]) As a 
  Inner JOIN 
(Select  {客户信息}.客户编号,{兑换表}.兑换编号,兑换日期,商品编号,数量,单价 From ({兑换明细} Inner JOIN {兑换表} ON {兑换表}.[兑换编号] = {兑换明细}.[兑换编号]) Inner JOIN {客户信息} ON {客户信息}.[客户编号] = {兑换表}.[客户编号]) As b on a.客户编号=b.客户编号

得到的结果不是don老师的!

 回到顶部
帅哥哟,离线,有人找我吗?
don
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2013/4/29 10:55:00 [只看该作者]

仔細想想你要達到的結果:合并[入库明细]和[兑换明细],同時連接[入庫單][兌換表]及[客戶信息]三表對應信息,因此,單單JOIN是不能的,還要UNION才行!

因此7樓的代碼可能在[客户编号][操作日期]都相同時有可能有誤差:連接在同一行而不是分行顯示

SQL的:
Select b.客户编号,客户名称,b.入库编号,商品编号 as 存入商品,存入日期 as 操作日期,数量 As 入库数量,单价 As 入库单价,数量*单价 As 入库金额,'' As 兑换编号,'' as 兑换商品,'' As 兑换数量,'' As 兑换单价,'' As 兑换金额 From ({入库明细} a Inner JOIN {入库单} b ON a.入库编号 = b.入库编号) Inner JOIN {客户信息} c ON c.客户编号 = b.客户编号 

Union

Select b.客户编号,客户名称,'' As 入库编号,'' as 存入商品,兑换日期 as 操作日期,'' As 入库数量,'' As 入库单价,'' As 入库金额,'' As 兑换编号,商品编号 as 兑换商品,数量 As 兑换数量,单价 As 兑换单价,数量*单价 As 兑换金额 From ({兑换明细} a Inner JOIN {兑换表} b ON a.兑换编号 = b.兑换编号) Inner JOIN {客户信息} c ON c.客户编号 = b.客户编号

order by 客户编号,操作日期
[此贴子已经被作者于2013-4-29 11:48:03编辑过]

 回到顶部
总数 16 1 2 下一页