查看: 1413|回复: 23
|
关于MSSQL 2000的一个SCRIPT问题.
[复制链接]
|
|
我要找点SQL2000的SCRIPT是关于:
例子:
select PROD_CODE, isnull(qty,0.00) as Qty from TABLEa
where prod_code in ('001', '002', '003')
答案:
Prod_code, Qty
001 1
002 0 << 答案
003 56
* 答案出来虽然是'0', 可是我要它会显示出来....因为现在我不知道什么地方弄错...虽然答案是0可是它就是不要显示出来.....
请帮帮忙~ |
|
|
|
|
|
|
|
发表于 8-1-2008 11:32 AM
|
显示全部楼层
table a 有没有 002 这个 product code? |
|
|
|
|
|
|
|

楼主 |
发表于 8-1-2008 02:03 PM
|
显示全部楼层
原帖由 神仙祖宗 于 8-1-2008 11:32 AM 发表 
table a 有没有 002 这个 product code?
有的...
我的意思是问.....有这CODE, 可是这sum(QTY) = 0.....时候, RESULT那里不会显示出来. |
|
|
|
|
|
|
|
发表于 8-1-2008 06:54 PM
|
显示全部楼层
我被你的问题给弄糊了
什么答案是0不要显示出来又要显示出来???
到底它有没有显示出来???
你要显示0的咚咚???
还是不要显示0的咚咚???
你的qty是不是null??? |
|
|
|
|
|
|
|

楼主 |
发表于 9-1-2008 08:50 AM
|
显示全部楼层
原帖由 神仙祖宗 于 8-1-2008 06:54 PM 发表 
我被你的问题给弄糊了
什么答案是0不要显示出来又要显示出来???
到底它有没有显示出来???
你要显示0的咚咚???
还是不要显示0的咚咚???
你的qty是不是null???
抱歉, 我写的不太清楚...
我的002 的 SUM(QTY) 的答案是 0 .........(意思是NULL)....
我要它会显示:
Prod_code Qty
001 1
002 0
003 56
而不是:
Prod_code, Qty
001 1
003 56
[ 本帖最后由 panic_tee 于 9-1-2008 08:51 AM 编辑 ] |
|
|
|
|
|
|
|
发表于 10-1-2008 02:03 AM
|
显示全部楼层
介意把完整的query放上来吗?不然很难猜到你要什么。。。 |
|
|
|
|
|
|
|

楼主 |
发表于 10-1-2008 08:57 AM
|
显示全部楼层
原帖由 max^^ 于 10-1-2008 02:03 AM 发表 
介意把完整的query放上来吗?不然很难猜到你要什么。。。
就在主楼啊..
select PROD_CODE, isnull(qty,0.00) as Qty from TABLEa
where prod_code in ('001', '002', '003')
我要它会显示:
Prod_code Qty
001 1
002 0
003 56
而不是:
Prod_code, Qty
001 1
003 56
* 少了002....的NULL QTY..
[ 本帖最后由 panic_tee 于 10-1-2008 08:59 AM 编辑 ] |
|
|
|
|
|
|
|
发表于 10-1-2008 01:16 PM
|
显示全部楼层
|
|
|
|
|
|
|

楼主 |
发表于 10-1-2008 03:29 PM
|
显示全部楼层
原帖由 max^^ 于 10-1-2008 01:16 PM 发表 
如果拿掉isnull,002会出现吗?
一样不会....
就很奇怪.....为什么是AMOUNT...就会出现.....QTY就不会? |
|
|
|
|
|
|
|
发表于 10-1-2008 10:23 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 10-1-2008 11:44 PM
|
显示全部楼层
|
|
|
|
|
|
|

楼主 |
发表于 12-1-2008 02:20 PM
|
显示全部楼层
原帖由 神仙祖宗 于 10-1-2008 10:23 PM 发表 
哪里来的sum(qty)??
抱歉, 我又写错了...
应该是.....sum(isnull(qty,0.00)) as Qty from TABLEa..... |
|
|
|
|
|
|
|

楼主 |
发表于 12-1-2008 02:21 PM
|
显示全部楼层
原帖由 max^^ 于 10-1-2008 11:44 PM 发表 
select * 呢?
select * 的话...
就有一堆出来了....当然如果002没有QTY的话, 就不会显示出来......我要的是如果没有QTY还是会显示0出来. |
|
|
|
|
|
|
|
发表于 12-1-2008 04:35 PM
|
显示全部楼层
如果是select * from单一的table也没有的话,很明显是没有这个record了。。
如果是select from 数个tables的话,就要看看query的join法。。
如果是select from view的话,就要看看view里面是怎么join法咯。。 |
|
|
|
|
|
|
|

楼主 |
发表于 13-1-2008 01:50 PM
|
显示全部楼层
原帖由 max^^ 于 12-1-2008 04:35 PM 发表 
如果是select * from单一的table也没有的话,很明显是没有这个record了。。
如果是select from 数个tables的话,就要看看query的join法。。
如果是select from view的话,就要看看view里面是怎么join法咯。。
如果是select * from单一的table也没有的话,没有这个record.....有没有办法显示出来QTY是0嘞? |
|
|
|
|
|
|
|
发表于 14-1-2008 01:00 AM
|
显示全部楼层
data都不存在要怎么display啊??没办法啦。。
除非那个002是有reference的就可以用那个reference的table来做left join。。 |
|
|
|
|
|
|
|

楼主 |
发表于 14-1-2008 08:55 AM
|
显示全部楼层
原帖由 max^^ 于 14-1-2008 01:00 AM 发表 
data都不存在要怎么display啊??没办法啦。。
除非那个002是有reference的就可以用那个reference的table来做left join。。
一定要LEFT JOIN?
Inner join...不可以?
RIGHT JOIN嘞? |
|
|
|
|
|
|
|
发表于 14-1-2008 09:33 AM
|
显示全部楼层
酱来解释吧。。
如果我有tableA和tableB,
tableA inner join tableB on tableA.xxx = tableB.xxx 就是两个table都要有相同的xxx才会diplay
tableA left join tableB on tableA.xxx = tableB.xxx 呢,就是tableA的所有records都会diplay,tableB如果没有record的话就是null
而tableA right join tableB on tableA.xxx = tableB.xxx 呢,和left join相反,tableB的所有records都会diplay,tableA如果没有record的话就display null
left join和right join的用法大概是一样的,分别只是哪个table是parent哪个是child,还有你要怎样的display。。 |
|
|
|
|
|
|
|

楼主 |
发表于 14-1-2008 11:22 AM
|
显示全部楼层
原帖由 max^^ 于 14-1-2008 09:33 AM 发表 
酱来解释吧。。
如果我有tableA和tableB,
tableA inner join tableB on tableA.xxx = tableB.xxx 就是两个table都要有相同的xxx才会diplay
tableA left join tableB on tableA.xxx = tableB.xxx 呢,就是 ...
是 left outer join 和 right outher join 吧? |
|
|
|
|
|
|
|
发表于 14-1-2008 11:35 AM
|
显示全部楼层
原帖由 panic_tee 于 14-1-2008 11:22 AM 发表 
是 left outer join 和 right outher join 吧?
没有outer也可以吧? |
|
|
|
|
|
|
| |
本周最热论坛帖子
|