我是一个初学者
表定义如下:       字段说明  字段名      字段类型 长度 说明
巡逻点设置情况表(PatrolCase):
   巡检点编号    Zone        文本     4   (0----9999)     
   允许时间误差  TimeReduce  文本     2    (单位:分钟)     
   工号          WorkId      文本     10      (外键)     
   预设巡检时间  PatrolTime   时间格式  年/月/日/时/分/秒     
   巡更组号      GroupNo     文本     4
巡更线路表(PatrolCircuitry):
   工号         WorkId       文本       10
   巡更路线     Circuitry      文本       300(形如:“2=>5=>1=>3=>9” 由)
   巡更组号     GroupNo     文本        4
  巡更组名     GroupName   文本        100
  巡更开始时间  PatrolBegin  时间格式  年/月/日/时/分/秒     
  巡更结束时间  PatrolEnd    时间格式  年/月/日/时/分/秒     
  巡更开始的巡检点 ZoneBegin   文本    4   (0----9999)
  巡更结束的巡检点 ZoneEnd     文本    4   (0----9999)
巡更点信息表 (PatrolNodeInfo)
  巡检区域    Partition    文本   100    (0---100) 
  巡检点编号  Zone       文本   4      (0---9999)
  巡检点名称   PatrolAddr  文本   100      
  巡检点备注   NodeRe 文本   300    要求:
  根据工号查询出 巡检点名称, 工号 ,巡更组号,巡更组名,巡更开始时间
    巡更结束时间,预设巡检时间,允许时间误差
  假设给定的工号是值为 “1”SQL语句咋么写?
  根据 巡更开始时间 查询出以上内容 又要咋么写?都要查询所有的记录在线等  先谢谢各位帮我

解决方案 »

  1.   

    select .... from ... where WorkId = ...嫌麻烦用懒办法:用你的字段建立access数据库,里面有现成的查询生成器
      

  2.   

    select 字段名1,字段名2.....from 表名  where 工号='1'
      

  3.   

    WHERE 子句
    指定用于限制返回的行的搜索条件。语法
    [ WHERE < search_condition > | < old_outer_join > ]< old_outer_join > ::=
        column_name { * = | = * } column_name参数
    <search_condition>通过使用谓词限制结果集内返回的行。对搜索条件中可以包含的谓词数量没有限制。有关搜索条件和谓词的更多信息,请参见搜索条件。< old_outer_join >使用不标准的产品专用语法和 WHERE 子句指定外联接。*= 运算符用于指定左向外联接,=* 运算符用于指定右向外联接。下例指定一个左向外联接,并在结果集内包含 Tab1 中不满足指定条件的行:SELECT Tab1.name, Tab2.id
    FROM Tab1, Tab2
    WHERE Tab1.id *=Tab2.id说明  这种语法具有潜在的二义性解释并且不标准,因此不提倡使用这种语法进行外联接。而应在 FROM 子句中指定联接。
    可以通过在 FROM 子句中使用联接运算符,或通过在 WHERE 子句中使用不标准的 *= 和 =* 运算符来指定外联接。不能在同一语句中同时使用这两种方法。
      

  4.   

    给你个建议,把时间设置成时/分
    看一下sql语句
      

  5.   

    我没有学过数据库
    说清楚一点吧!设计要求这样的:
    根据 工号查询出巡更路线
    解码 巡更路线 字符串 得到 一连串的 巡检点名然后 根据 巡检点名 查询出 巡检点名称, 工号 ,巡更组号,巡更组名,巡更开始时间
        巡更结束时间,预设巡检时间,允许时间误差 
    输出到 一个ListBox中这里回用到 几个 SQl语句
    各是什么
      

  6.   

    还有一点不明白?下面是我写的一个函数用来添加日志记录
    日志信息表(LogInfo)
      用户名     UserName      文本      50 
      操作选项    Option        文本      100
      操作时间    OperateTime    时间格式  年/月/日/时/分/秒     BOOL LogRecord ( TCHAR csUserName [], TCHAR csOption [], CTime& tmOperate ) 
    {
    BOOL bRet = TRUE ;
    //打开数据库
    TCHAR csFileName [80] ;
    GetModuleFileName 
    ( NULL, csFileName, sizeof csFileName ) ;
    TCHAR* p = _tcsrchr ( csFileName, _T('\\') ) ;
    p [0] = _T( '\0' ) ;
    _tcscat ( csFileName, _T("\\PatrolInfo.mdb") ) ; //打开数据库
    CDaoDatabase db ;
    CDaoRecordset rs ( &db ) ;
    TCHAR csSql [80] =
    _T("SELECT * FROM LogInfo") ;
    COleVariant obj ;
    COleDateTime tm
    (
    tmOperate .GetYear (  ),
    tmOperate .GetMonth (  ),
    tmOperate .GetDay (  ),
    tmOperate .GetHour (  ),
    tmOperate .GetMinute (  ),
    tmOperate .GetSecond (  )  
    ) ;
    COleVariant objDate ( tm ) ;
    try
    {
    db .Open ( csFileName ) ;
    rs .Open ( dbOpenDynaset, csSql ) ;
    rs .AddNew (  ) ;
    obj .SetString ( csUserName , VT_BSTRT ) ;
    rs .SetFieldValue ( _T("UserName"), obj ) ;
    obj .SetString ( csOption, VT_BSTRT ) ;
    rs .SetFieldValue ( _T("Option"), obj ) ;
    rs .SetFieldValue ( _T("OperateTime"), objDate ) ; 
    rs .Update (  ) ; 
    rs .Close (  ) ;
    db .Close (  ) ;
    }
    catch ( CDaoException* error )
    {
    TCHAR pError [120] ;
    error ->GetErrorMessage ( pError, 100, NULL ) ;
    ::MessageBox 
    ( NULL, pError, _T("数据库错误"), MB_OK ) ;
    error ->Delete (  ) ;
    return FALSE ;
    } return bRet ;
    }可试运行 到
    db .Open ( csFileName ) 
    有异常提示 说 mdb文件的格式不正确
    我用的 access 2000 创建的数据库 PatrolInfo.mdb
    目录也是对的
      

  7.   

    to linfuyong (林子)
     我没有权利修改 数据库的设计
      

  8.   

    你要的SQL语句我马上给你写好!
      

  9.   

    1.  select Circuitry from PatrolCircuitry where WorkId= '1'
     2. 解码,你用代码实现,应该没问题! sss 是一个巡检点
    3。select PatrolAddr  ,GroupNo   ,'1'  ,GroupName ,PatrolBegin,PatrolEnd,PatrolCase.PatrolTime,PatrolCase.TimeReduce  
      from    PatrolNodeInfo left join  PatrolCase on PatrolCase .Zone = PatrolNodeInfo .Zone 
    where PatrolNodeInfo .Zone = sss