c#對SQL有特別要求嗎?

misfans 2003-10-17 07:10:39
為什么我下面這個SQL放到C#中﹐就說沒有資料呢?可我放到Oracle資料庫中卻有800多筆呢?是不是c#對SQL有什么特別的要求?
SQL:
------------------
SELECT X.YM,X.CUST_NAME,X.ODR_NO,X.STYLE_NAME,X.ODR_QTY,X.TOT_QTY,Z.TOT as hhhhh,'odr_no='||X.ODR_NO||'&'||'style_no='||X.STYLE_NO AS ARG FROM (select substr(A.pro_date,0,6) as ym,C.CUST_NAME,A.ODR_NO,D.STYLE_NO,D.STYLE_NAME,NVL(SUM(A.odr_qty),0) odr_qty,nvl(sum(tot_pro_qty),0) tot_qty from odr_prom A,ODRM B,CUSTOM C,STYLEM D where A.ODR_NO=B.ODR_NO AND B.STYLE_NO=D.STYLE_NO AND B.CUST_NO=C.CUST_NO AND A.FAC_NO='R0' AND A.DEPT_NO='R2' AND substr(pro_date,0,6)='200309' GROUP BY substr(A.pro_date,0,6),A.odr_no,C.CUST_NAME,D.STYLE_NO,D.STYLE_NAME) X, (SELECT ODR_NO,NVL(SUM(TOT_PRO_QTY),0) AS TOT FROM ODR_PROM WHERE FAC_NO='R0' AND DEPT_NO='R2' GROUP BY ODR_NO) Z WHERE X.ODR_NO=Z.ODR_NO
----------------------
謝謝!
fans
...全文
33 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
LighBlade 2003-11-12
  • 打赏
  • 举报
回复
我提两点建议:
1、因为这些都是微软的东东,所以绝对不会有什么限制。
2、使用SQL里面的group by的时候,请千万注意:select的内容应该和group by的内容应该相同(虽然不限制前后次序),就是说select a,b,c,d且同时用group by 的话,group by 应该包括abcd(可以按照你要的次序写,但是必须都有)。
zjjszw 2003-11-12
  • 打赏
  • 举报
回复
up
kandyasp 2003-10-18
  • 打赏
  • 举报
回复
应该没什么要求的
kuangsha007 2003-10-18
  • 打赏
  • 举报
回复

很显然是你Goup by 的问题。
你用Goup by对数据进行了重新聚合,聚合以后有没有数据,要看你的记录了。


如果第一個沒有問題﹐則第二個也肯定不會有問題,是吧!
肯定不是的。。
orcale 2003-10-18
  • 打赏
  • 举报
回复
你sql有沒有問題再數據庫的那邊測試看看不就知道!
misfans 2003-10-18
  • 打赏
  • 举报
回复
多謝各位朋友拉!
不過﹐我用的是c# + Oracle,連接接口是Oracle公司提供的OracleClient.
我的SQL決對沒有問題﹐因為上面的SQL是我在綁定到DataGrid上后﹐順便輸出來的﹐
該SQL在我的Oracle資料庫中執行有800多筆資料!

至于綁定方法﹕
我試過OracleDataReader & DataSet!

昨晚我在簡化SQL過程發現﹐當我簡化到放棄Group By時﹐該SQL可以讀出資料了﹐便是這樣的﹕
------------------------------
select a.ODR_NO,d.STYLE_NO from ODR_PROM a,ODRM b,CUSTOM c,STYLEM d where a.ODR_NO=b.ODR_NO AND b.STYLE_NO=d.STYLE_NO AND b.CUST_NO=c.CUST_NO AND a.FAC_NO='R0' AND a.DEPT_NO='R2'
--這樣有很多筆資料出來
當我重新改成﹕
select a.ODR_NO,d.STYLE_NO,SUM(a.ODR_QTY) as ODR_QTY,sum(a.TOT_PRO_QTY) as TOT_PRO_QTY from ODR_PROM a,ODRM b,CUSTOM c,STYLEM d where a.ODR_NO=b.ODR_NO AND b.STYLE_NO=d.STYLE_NO AND b.CUST_NO=c.CUST_NO AND a.FAC_NO='R0' AND a.DEPT_NO='R2' GROUP BY a.ODR_NO,d.STYLE_NO
--大家可以看看這兩個SQL﹐如果第一個沒有問題﹐則第二個也肯定不會有問題,是吧!
可是﹐這第二個偏就是沒有讀到資料﹗

為什么?

謝謝!
Stevetan81 2003-10-17
  • 打赏
  • 举报
回复
没有特别要求拉
rgbcn 2003-10-17
  • 打赏
  • 举报
回复
没有什么要求,都是微软自己出的软件。
xzl9 2003-10-17
  • 打赏
  • 举报
回复
同意实行跟踪调试,具体查一下出错的位置
haoliqi 2003-10-17
  • 打赏
  • 举报
回复
同意楼上的看法
kuangsha007 2003-10-17
  • 打赏
  • 举报
回复
还时你执行的时候的问题,SQL server 和 C#都是 ms的东东肯定对自己没有什么限制的
你可以单步调试一下你的语句
jiezhi 2003-10-17
  • 打赏
  • 举报
回复
肯定没有什么特别要求拉,它只是把语句送到数据库去执行,又不是它来执行!
所以根本谈不到什么要求拉.关键是你的语句要写对,跟踪一下最终送去执行的语句是什么样子.
imagingboy 2003-10-17
  • 打赏
  • 举报
回复
没有什么特别要求!!!
minajo21 2003-10-17
  • 打赏
  • 举报
回复
你用什么方式执行的这句sql?

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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