很奇怪的问题,请大家帮忙,谢谢
问题一:
select a.SaleNoteID,a.CustID,a.ConstMoney,a.SaleEmpID,a.AuditEmpID,a.CreateEmpID,a.SaleDate,a.AuditDate,a.CreateDate,a.flag,a.isDelete,b.CustID,b.custname,c.EmpName
from
salenote a, customer b, employee c
where
a.SaleNoteID ='1'
就会出现这样的结果
1 1 NULL NULL NULL NULL NULL 1905-06-22 00:00:00.000 NULL NULL NULL 0001 xxxxx admin
1 1 NULL NULL NULL NULL NULL 1905-06-22 00:00:00.000 NULL NULL NULL 0001 xxxxx xxxxx
1 1 NULL NULL NULL NULL NULL 1905-06-22 00:00:00.000 NULL NULL NULL 0001 xxxxx xxxxx
1 1 NULL NULL NULL NULL NULL 1905-06-22 00:00:00.000 NULL NULL NULL 0001 xxxxx xxxxx
1 1 NULL NULL NULL NULL NULL 1905-06-22 00:00:00.000 NULL NULL NULL 0001 xxxxx xxxxx
1 1 NULL NULL NULL NULL NULL 1905-06-22 00:00:00.000 NULL NULL NULL 0001 xxxxx xxxxx
1 1 NULL NULL NULL NULL NULL 1905-06-22 00:00:00.000 NULL NULL NULL 0001 xxxxx 1
1 1 NULL NULL NULL NULL NULL 1905-06-22 00:00:00.000 NULL NULL NULL 0002 test admin
1 1 NULL NULL NULL NULL NULL 1905-06-22 00:00:00.000 NULL NULL NULL 0002 xxxxx xxxxx
1 1 NULL NULL NULL NULL NULL 1905-06-22 00:00:00.000 NULL NULL NULL 0002 test xxxxx
1 1 NULL NULL NULL NULL NULL 1905-06-22 00:00:00.000 NULL NULL NULL 0002 test xxxxx
1 1 NULL NULL NULL NULL NULL 1905-06-22 00:00:00.000 NULL NULL NULL 0002 test xxxxx
1 1 NULL NULL NULL NULL NULL 1905-06-22 00:00:00.000 NULL NULL NULL 0002 test xxxxx
1 1 NULL NULL NULL NULL NULL 1905-06-22 00:00:00.000 NULL NULL NULL 0002 test 1
而如果,去掉其他两个表的关联查询
a.SaleNoteID,a.CustID,a.ConstMoney,a.SaleEmpID,a.AuditEmpID,a.CreateEmpID,a.SaleDate,a.AuditDate,a.CreateDate,a.flag,a.isDelete
from
salenote a
where
a.SaleNoteID ='1'
结果是
1 1 NULL NULL NULL NULL NULL 1905-06-22 00:00:00.000 NULL NULL NULL
而这个是SaleNoteID表中正确的数据
但是我上面的关联的查询的时候
from
salenote a, customer b, employee c
怎么会多出那么多数据啊??我看其它表好像也没有啊??谢谢
问题二:
我写
insert salenote (corpid,salenoteid ,deptid,custid,auditdate,SalePriceTypeID)
values (4,4,4,4,2003-04-2,1)
得时候这个月份总是插不进去,总是默认的1905-06-22 00:00:00.000,但是我看管理器中的设计表中,好像也没有设置默认时间的样子,而且在管理器中手动添加却是可以成功的添加2003-04-2的!~
请问各位大哥,上面两个问题是怎么回事啊??能帮帮忙吗??谢谢了,谢谢
问题点数:20、回复次数:6Top
1 楼xluzhong(Ralph)回复于 2005-04-02 11:58:09 得分 10
where是把三个表都显示出来
left join显示左联的字段
-----
时间和字符串一样,得用单引号 eg:'2003-04-2'Top
2 楼paoluo(一天到晚游泳的鱼)回复于 2005-04-02 12:02:14 得分 0
问题二:
我写
insert salenote (corpid,salenoteid ,deptid,custid,auditdate,SalePriceTypeID)
values (4,4,4,4,2003-04-2,1)
得时候这个月份总是插不进去,总是默认的1905-06-22 00:00:00.000,但是我看管理器中的设计表中,好像也没有设置默认时间的样子,而且在管理器中手动添加却是可以成功的添加2003-04-2的!~
---------------------------------------
改为
insert salenote (corpid,salenoteid ,deptid,custid,auditdate,SalePriceTypeID)
values (4,4,4,4,'2003-04-2',1)
试试
Top
3 楼paoluo(一天到晚游泳的鱼)回复于 2005-04-02 12:07:45 得分 10
select a.SaleNoteID,a.CustID,a.ConstMoney,a.SaleEmpID,a.AuditEmpID,a.CreateEmpID,a.SaleDate,a.AuditDate,a.CreateDate,a.flag,a.isDelete,b.CustID,b.custname,c.EmpName
from
salenote a, customer b, employee c
where
a.SaleNoteID ='1'
产生那么多数据的原因是没有加上a,b,c三表关联的条件
你的c表的EmpID对应a表的哪个字段??
写出来,我可以帮你改写语句。Top
4 楼jackbaby()回复于 2005-04-02 15:52:19 得分 0
想了一中午,还是没想出来,还是得麻烦麻烦大家,谢谢
上午的这个sql是这样的
//销售出库单号的赋值查询
if(strSaleNoteID!="" && strSaleNoteID!=null)
strWhere += " or a.SaleNoteID = '"+strSaleNoteID+"'" ;
//客户的赋值查询
if(CustomerName!="" && CustomerName!=null)
strWhere += " or b.custname ='"+CustomerName+"'";
strSql = "select a.SaleNoteID,a.CustID,a.ConstMoney,a.SaleEmpID,a.AuditEmpID,"
+ "a.CreateEmpID,a.SaleDate,a.AuditDate,a.CreateDate,a.flag,a.isDelete,"
+ "b.custname,c.LinkMan"
+ " from salenote a, customer b, Dept c"
+ " where a.CustID=b.CustID and a.CorpID=c.CorpID" + strWhere;
向关联的表字段为
表对应:
a.CustID=b.CustID
表对应
a.CorpID=c.CorpID
我单独查询Dept表的时候,只有一行字段值,但是用上面的查询的时候,会出来很多查询结果??
这是那里的问题没有考虑到啊??
要怎么考虑和修改那??
能否帮帮忙?谢谢了,谢谢各位Top
5 楼jackbaby()回复于 2005-04-02 16:11:53 得分 0
在帮忙看看好吗??谢谢各位大哥了,谢谢Top
6 楼jackbaby()回复于 2005-04-02 16:36:50 得分 0
再次谢谢了,谢谢,帮忙看看好吗??Top




