我是一个初学者
表定义如下: 字段说明 字段名 字段类型 长度 说明
巡逻点设置情况表(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语句咋么写?
根据 巡更开始时间 查询出以上内容 又要咋么写?都要查询所有的记录在线等 先谢谢各位帮我
表定义如下: 字段说明 字段名 字段类型 长度 说明
巡逻点设置情况表(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语句咋么写?
根据 巡更开始时间 查询出以上内容 又要咋么写?都要查询所有的记录在线等 先谢谢各位帮我
指定用于限制返回的行的搜索条件。语法
[ 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 子句中使用不标准的 *= 和 =* 运算符来指定外联接。不能在同一语句中同时使用这两种方法。
看一下sql语句
说清楚一点吧!设计要求这样的:
根据 工号查询出巡更路线
解码 巡更路线 字符串 得到 一连串的 巡检点名然后 根据 巡检点名 查询出 巡检点名称, 工号 ,巡更组号,巡更组名,巡更开始时间
巡更结束时间,预设巡检时间,允许时间误差
输出到 一个ListBox中这里回用到 几个 SQl语句
各是什么
日志信息表(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
目录也是对的
我没有权利修改 数据库的设计
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