SELECT DISTINCT input.gsum, goods.gname, stock.gno, goods.gunit, goods.gsort, store.sname
FROM store INNER JOIN((goods INNER JOIN stock ON goods.gid=stock.gid) INNER JOIN [input] ON goods.gid=input.gid) ON (store.sid=stock.sid) AND (store.sid=input.sid)
WHERE (((goods.gsort) Like '*' & forms!出库单!gsort & '*') And ((goods.gname) Like '*' & forms!出库单!gname & '*') And ((store.sname) Like '*' & forms!出库单!sname & '*') and ((input.gsum)=(stock.gsum)));求教下这些语句的大致意思。DISTINCT返回唯一的值,那是从store表里返回这些input.gsum, goods.gname, stock.gno, goods.gunit, goods.gsort, store.sname的值嘛?INNER JOIN之后的语句我表示不明白。。帮帮忙,谢谢

解决方案 »

  1.   


    input、goods、store、stork是表名。
    请问下(goods.gsort) Like '*' & forms!出库单!gsort & '*')里面的两个'*'是什么意思,谢谢
      

  2.   

    '*'在SQL中还真没有怎么用过,但在VBA中可以代表一串字符和SQL中的%差不多。不知道回答对没有。
    下面是LIKE中常用的字符:
    Like ‘%mr%’--------包含字符mr的任何文本;
    Like ‘mr%’-----------以字符mr开头的任何文本;
    Like ‘%mr’------------以字符mr结尾的任何文本;
    使用’_’匹配任意单个字符;
    使用’[]’匹配某一范围的字符:[a-m]表示a到m的所有字符,[0-9]表示0到9的所有数字;
    使用’[^]’匹配非某一范围的字符; 
      

  3.   

    3楼。我想请问下VB语句里。stemp1 = stemp1 & ";" & rs("gname") 这句的";"又是什么意思。怎么这么多这些符号的好迷惘呀,,谢谢了
      

  4.   


    select distinct 
    input.gsum, goods.gname, 
    stock.gno, goods.gunit, 
    goods.gsort, store.sname
    from store 
    inner join(
    (
    goods 
    inner join stock on goods.gid=stock.gid) 
    inner join [input] on goods.gid=input.gid

    on (store.sid=stock.sid) and (store.sid=input.sid)
    where (((goods.gsort) like '*' & forms!出库单!gsort & '*') 
    and ((goods.gname) like '*' & forms!出库单!gname & '*') 
    and ((store.sname) like '*' & forms!出库单!sname & '*') 
    and ((input.gsum)=(stock.gsum)));
    --这个明显在SQL SERVER 中语法通不过(&和!的用法不符合SQL SERVER语法)--inner join 是内连接
    --on 是连接条件
    --where 是过滤条件
    --like 是模糊查询
      

  5.   

    stemp1 = stemp1 & ";" & rs("gname") 这里的& 相当于+ 表示拼接字符串
    stemp1 是一个字符串
    表示把两个字符拼在一起,中间用分号间隔开。例如"A;gname"