关于下列SQL语句可能产生的错误。。

sardineany 2010-08-05 10:44:28
http://topic.csdn.net/u/20100805/10/df321ec4-45f5-40a8-abd8-6d48a201cff4.html?56648。。
不小心发到非技术区了。。。囧
...全文
122 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sardineany 2010-08-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 haiwer 的回复:]
Try:

SQL code
SELECT DISTINCT RE_RepairBills.cHouseCode,RE_RepairBills.dCheckTime,RE_RepairBills.cReBillCode, RE_InDepotLog.cGoodsCode, RE_RepairBills.cHouseCode, MT_Goods.cGoodsPN, MT_Goods.cGo……
[/Quote] 用你的方法,多查到了8条记录。。
sardineany 2010-08-05
  • 打赏
  • 举报
回复
恩,括号是我发帖的时候加的。。所以是中文的吧。。自己没小心。。我现在数据能查出来,但是查不全。。。






hao1hao2hao3 2010-08-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sardineany 的回复:]
引用 3 楼 hao1hao2hao3 的回复:
SQL code



and (RE_RepairBills.cHouseCode='200604100018')






已经在非技术区回复了。
我已经在查询分析器里执行了,但我现在不知道是什么数据能查到什么查不到,只是上面告诉我出现过查不到的情况。。所以在研究。。
[/Quote]


没有报语法错误吗?你这里的括号有问题,是中文输入法时的括号,要改成


and (RE_RepairBills.cHouseCode='200604100018')



看出区别了没有?
昵称被占用了 2010-08-05
  • 打赏
  • 举报
回复
Try:

SELECT  DISTINCT  RE_RepairBills.cHouseCode,RE_RepairBills.dCheckTime,RE_RepairBills.cReBillCode, RE_InDepotLog.cGoodsCode, RE_RepairBills.cHouseCode, MT_Goods.cGoodsPN, MT_Goods.cGoodsCName, 
CASE RE_RepairBills.cBillType WHEN '200611070002' THEN 'DOA新品' WHEN '200611070001' THEN '新品' ELSE '新品' END AS shuxing,
SUM(RE_InDepotLog.rAmont) AS 'rAmont', MT_Goods.cGoodsPN AS 'cGoodsPN1', MT_Goods.cGoodsCName AS 'cGoodsCName2',
RE_InDepotLog.cGoodsCode AS 'cGoodsCode2'
FROM RE_RepairBills LEFT OUTER JOIN
RE_InDepotLog ON RE_RepairBills.cReBillCode = RE_InDepotLog.cReBillCode
AND (RE_InDepotLog.cReGoodsClassCode = '200611180001')
LEFT OUTER JOIN
MT_Goods ON MT_Goods.cGoodsCode = RE_InDepotLog.cGoodsCode
WHERE (RE_RepairBills.cBillState = '检测')
and (RE_RepairBills.isread is NULL or RE_RepairBills.isread='0')
and (RE_RepairBills.cHouseCode='200604100018')
and (RE_RepairBills.dCheckTime>'2010-7-21' AND RE_RepairBills.dCheckTime<'2010-7-22')
sardineany 2010-08-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hao1hao2hao3 的回复:]
SQL code



and (RE_RepairBills.cHouseCode='200604100018')




已经在非技术区回复了。
[/Quote] 我已经在查询分析器里执行了,但我现在不知道是什么数据能查到什么查不到,只是上面告诉我出现过查不到的情况。。所以在研究。。
天-笑 2010-08-05
  • 打赏
  • 举报
回复

SELECT DISTINCT RE_RepairBills.cHouseCode,RE_RepairBills.dCheckTime,RE_RepairBills.cReBillCode, RE_InDepotLog.cGoodsCode, RE_RepairBills.cHouseCode, MT_Goods.cGoodsPN, MT_Goods.cGoodsCName,
CASE RE_RepairBills.cBillType WHEN '200611070002' THEN 'DOA新品' WHEN '200611070001' THEN '新品' ELSE '新品' END AS shuxing,
SUM(RE_InDepotLog.rAmont) AS 'rAmont', MT_Goods.cGoodsPN AS 'cGoodsPN1', MT_Goods.cGoodsCName AS 'cGoodsCName2',
RE_InDepotLog.cGoodsCode AS 'cGoodsCode2'
FROM RE_RepairBills LEFT OUTER JOIN
RE_InDepotLog ON RE_RepairBills.cReBillCode = RE_InDepotLog.cReBillCode LEFT OUTER JOIN
MT_Goods ON MT_Goods.cGoodsCode = RE_InDepotLog.cGoodsCode
WHERE (RE_RepairBills.cBillState = '检测')
-- AND (RE_InDepotLog.cReGoodsClassCode = '200611180001')
--and (RE_RepairBills.isread is NULL or RE_RepairBills.isread='0')
-- and (RE_RepairBills.cHouseCode='200604100018')
--and (RE_RepairBills.dCheckTime>'2010-7-21' AND RE_RepairBills.dCheckTime<'2010-7-22')

将你的where 条件 一条一条的放开,看看问题出在哪个查询条件上
hao1hao2hao3 2010-08-05
  • 打赏
  • 举报
回复
这里的括号有问题。
华夏小卒 2010-08-05
  • 打赏
  • 举报
回复
[Quote=引用楼主 sardineany 的回复:]
http://topic.csdn.net/u/20100805/10/df321ec4-45f5-40a8-abd8-6d48a201cff4.html?56648。。
不小心发到非技术区了。。。囧
[/Quote]汗,你转到技术区就是了
hao1hao2hao3 2010-08-05
  • 打赏
  • 举报
回复



and (RE_RepairBills.cHouseCode='200604100018')



已经在非技术区回复了。
sardineany 2010-08-05
  • 打赏
  • 举报
回复
SELECT  DISTINCT  RE_RepairBills.cHouseCode,RE_RepairBills.dCheckTime,RE_RepairBills.cReBillCode, RE_InDepotLog.cGoodsCode, RE_RepairBills.cHouseCode, MT_Goods.cGoodsPN, MT_Goods.cGoodsCName, 
CASE RE_RepairBills.cBillType WHEN '200611070002' THEN 'DOA新品' WHEN '200611070001' THEN '新品' ELSE '新品' END AS shuxing,
SUM(RE_InDepotLog.rAmont) AS 'rAmont', MT_Goods.cGoodsPN AS 'cGoodsPN1', MT_Goods.cGoodsCName AS 'cGoodsCName2',
RE_InDepotLog.cGoodsCode AS 'cGoodsCode2'
FROM RE_RepairBills LEFT OUTER JOIN
RE_InDepotLog ON RE_RepairBills.cReBillCode = RE_InDepotLog.cReBillCode LEFT OUTER JOIN
MT_Goods ON MT_Goods.cGoodsCode = RE_InDepotLog.cGoodsCode
WHERE (RE_RepairBills.cBillState = '检测')
AND (RE_InDepotLog.cReGoodsClassCode = '200611180001')
and (RE_RepairBills.isread is NULL or RE_RepairBills.isread='0')
and (RE_RepairBills.cHouseCode='200604100018')
and (RE_RepairBills.dCheckTime>'2010-7-21' AND RE_RepairBills.dCheckTime<'2010-7-22')


用户页面就两个下拉列表,不存在用户自己输入的地方,都是选的,用户可以进行筛选的就是RE_RepairBills.dCheckTime 和 RE_RepairBills.cHouseCode 也就是日期和库房号。
现在的问题就是输入进去之后,有的数据能查到有的却查不到,大家帮着想想问题可能出现在哪里可能有问题
应该就是where里面。。虽然这有些断章取义。。不过还是抱着点希望发上来让大家帮帮忙。

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧