More servicesWindows Live
HomeHotmailSpacesOneCare
 
MSN
Sign in
 
 
Spaces home  葡萄PhotosProfileFriendsMore Tools Explore the Spaces community
View space
小凡
View space
Miko'
View space
宁采臣
View space
kaylee89bk
View space
怡&红
View space
小西
View space
信息产业部鉴定主任
View space
Vicky

No list items have been added yet.

葡萄

JJ比赛斗地主,高手间的较量,斗地主精英牌照你拿了吗??http://www.jjmatch.com/Awarduserreg.asp?promoterid=146654
April 23

Sql

有一个表如下:
ID     saleDate   Price
1      2008-1-1   40
2      2008-1-1   50
3      2008-1-2   24
6      2008-1-2   10
7      2008-1-3   12
8      2008-1-3   20
....
要写一个存储过程,统计一段时间内各连续ID的价格合计,得到以下结果:
比如 2008-1-1到2008-1-3,得到的结果为:
ID_Range  Totoal_Price
1-3        114
6-7        42
如果统计的是2008-1-1到2008-1-2,得到的结果是
ID_Range  Totoal_Price
1-3        114
6          10
请问如何写这个存储过程? 

 

答:

 

if object_id('tempdb..#T'is not null
   
drop table #T

create table #T(ID int,SaleDate datetime,Price int)
insert into #T select 1   ,   '2008-1-1' ,  40 
insert into #T select 2   ,   '2008-1-1' ,  50 
insert into #T select 3   ,   '2008-1-2' ,  24 
insert into #T select 6   ,   '2008-1-2' ,  10 
insert into #T select 7   ,   '2008-1-3' ,  12 
insert into #T select 8   ,   '2008-1-3' ,  20 
go

create proc p_test
(
   
@begin_date datetime,
   
@end_date datetime
)
as
   
select ID=ltrim(ID)+
         
case when exists(select 1 from #T 
                     
where SaleDate between @begin_date and @end_date 
                               
and ID=a.ID+1then '-'+
               
ltrim((select min(ID) from #T b
                          
where SaleDate between @begin_date and @end_date and ID>=a.ID
                               
and not exists(select 1 from #T 
                                               
where SaleDate between @begin_date and @end_date 
                                                  
and ID=b.ID+1)
                       )) 
else '' end  ,

         Total_Price
=(select sum(Price) from #T b
                         
where SaleDate between @begin_date and @end_date
                             
and ID between a.ID and 
                                    (
select min(ID) from #T b
                                      
where SaleDate between @begin_date and @end_date and ID>=a.ID
                                              
and not exists(select 1 from #T 
                                                   
where SaleDate between @begin_date and @end_date 
                                                         
and ID=b.ID+1)
                                      )
                    )

   
from #T a
   
where SaleDate between @begin_date and @end_date
        
and not exists
            (
select 1 from #T where ID=a.ID-1 and SaleDate between @begin_date and @end_date)


go
exec p_test '2008-01-01','2008-01-03'
exec p_test '2008-01-01','2008-01-02'
go
drop table #T
drop proc p_test

/**//*
ID                        Total_Price 
------------------------- ----------- 
1-3                       114
6-8                       42

(所影响的行数为 2 行)

ID                        Total_Price 
------------------------- ----------- 
1-3                       114
6                         10

(所影响的行数为 2 行)
*/

 

-- =============================================================================
--
 Title: 在SQL中分类合并数据行
--
 Author: dobear        Mail(MSN): dobear_0922@hotmail.com
--
 Environment: Vista + SQL2005
--
 Date: 2008-04-22
--
 =============================================================================

--1. 创建表,添加测试数据
CREATE TABLE tb(id int[value] varchar(10))
INSERT tb SELECT 1'aa'
UNION ALL SELECT 1'bb'
UNION ALL SELECT 2'aaa'
UNION ALL SELECT 2'bbb'
UNION ALL SELECT 2'ccc'

--SELECT * FROM tb
/**//*
id          value
----------- ----------
1           aa
1           bb
2           aaa
2           bbb
2           ccc

(5 row(s) affected)
*/



--2 在SQL2000只能用自定义函数实现
--
--2.1 创建合并函数fn_strSum,根据id合并value值
GO
CREATE FUNCTION dbo.fn_strSum(@id int)
RETURNS varchar(8000)
AS
BEGIN
    
DECLARE @values varchar(8000)
    
SET @values = ''
    
SELECT @values = @values + ',' + value FROM tb WHERE id=@id
    
RETURN STUFF(@values11'')
END
GO

-- 调用函数
SELECT id, VALUE = dbo.fn_strSum(id) FROM tb GROUP BY id
DROP FUNCTION dbo.fn_strSum

----2.2 创建合并函数fn_strSum2,根据id合并value值
GO
CREATE FUNCTION dbo.fn_strSum2(@id int)
RETURNS varchar(8000)
AS
BEGIN
    
DECLARE @values varchar(8000)    
    
SELECT @values = isnull(@values + ','''+ value FROM tb WHERE id=@id
    
RETURN @values
END
GO

-- 调用函数
SELECT id, VALUE = dbo.fn_strSum2(id) FROM tb GROUP BY id
DROP FUNCTION dbo.fn_strSum2


--3 在SQL2005中的新解法
--
--3.1 使用OUTER APPLY
SELECT * 
FROM (SELECT DISTINCT id FROM tb) A OUTER APPLY(
        
SELECT [values]= STUFF(REPLACE(REPLACE(
            (
                
SELECT value FROM tb N
                
WHERE id = A.id
                
FOR XML AUTO
            ), 
'<N value="'','), '"/>'''), 11'')
)N

----3.2 使用XML
SELECT id, [values]=STUFF((SELECT ','+[value] FROM tb t WHERE id=tb.id FOR XML PATH('')), 11'')
FROM tb
GROUP BY id

--4 删除测试表tb
drop table tb

/**//*
id          values
----------- --------------------
1           aa,bb
2           aaa,bbb,ccc

(2 row(s) affected)
*/

 

April 15

DRP,Distribution Resource Planning,分销资源计划系统

  DRP(Distribution Resource Planning)分销资源计划是管理企业的分销网络的系统,目的是使企业具有对订单和供货具有快速反应和持续补充库存的能力。

  通过互联网将供应商与经销商有机地联系在一起,DRP为企业的业务经营及与贸易伙伴的合作提供了一种全新的模式。供应商和经销商之间实可以现实时地提交订单、查询产品供应和库存状况、并获得市场、销售信息及客户支持,实现了供应商与经销商之间端到端的供应链管理,有效地缩短了供销链。

  新的模式借助互联网的延申性及便利性,使商务过程不再受时间、地点和人员的限制,企业的工作效率和业务范围都得到了有效的提高。企业也可以在兼容互联网时代现有业务模式和现有基础设施的情况下,迅速构建B2B电子商务的平台,扩展现有业务和销售能力,实现零风险库存,大大降低分销成本,提高周转效率,确保获得领先一步的竞争优势
 
实现对企业分销渠道的管理,如总部、销售分子公司、经销商、代理商或连锁店等,管理对象主要是订单、库存、财务往来等方面。它解决的主要问题是:

1. 充分地利用信息技术特别是Internet,提高营销方面的业务处理效率,降低员工工作强度,提高信息传递速度、效率和准确性。

2. 及时掌握分销链上的库存信息,减少库存积压和浪费,减少安全库存,减少运输费用。避免缺货的同时,避免货物在需求链上压的过深过多。

3. 及时传递订单和销售量信息,掌握客户需求,对要货计划和资源分配计划进行管理,实现订单和客户需求对生产的驱动,而非生产带动销售。

4.  严格控制销售费用,减少渠道营销费用,加强对应收帐款的控制。
我先抛一个SaaS的DRP应用案例,再来说SaaS模式下的DRP系统在目前阶段是否可行?

二、“进退维谷”的SaaS模式DRP

    郭详是国内一家知名的中高档休闲服饰品牌的IT经理,是由集团信息部下派到这家公司任IT经理的。不管怎么说,也算是从“中央”下来的人,应该在事业和工作上是“风调雨顺”才是。记得有好久没有联系了,就找他聊了一会,正想着找他出来喝喝茶。职场得意,也该他请我们一班老朋友吃饭了吧。没有想到,他说正烦着呢,大家一起出来喝喝酒,还有事情要我们哥几个帮着出出招。我一听,以为是刚到子公司,应该碰上什么技术上或者是管理上的难题了吧。 

    这样,就约了另三个朋友:老万、老徐和老温。都是鞋服企业的IT掌门人,当年也都是在一起工作和成长的,虽然过了多年,但感情依然不减,相约晚上8:30到“舍得坊”见面。我很是喜欢“舍得坊”这个名,我觉得名字立意非常高,有一句话说:“舍得,舍得,没有小舍哪有大得”?,再加上这里的环境也非常优雅,适合几个朋友约在一起,找一个包厢,要一壶西湖龙井,几蝶花生、瓜子类的,大家天南地北地聊着。 

    大家都很准时,来了打招呼,要了茶,我就向郭详问道:“老郭,最近不是升官了吗?哪里还有什么事情你搞不定的?再说,你背后不是还有集团公司的资源吗?几十号的人马,要技术有技术,要钱有钱,还有什么搞不定的?”。郭详喝了口茶,说道:“一开始我不清楚那边的状态,而且也听说那边正在做DRP的项目。把我要过去,就是为了这个DRP的项目的,我想我在这一块也算是做了好些年景了,应该比较有把握在过去之后把项目做好的,可谁想到是另一种局面等着我过去收拾的呢?”。 

    原来,郭详他刚过去的时候,DRP的项目已经由公司的营销副总拍板定下来了,是采用的一家SaaS的DRP系统。因为公司的高层听说SaaS模式的DRP系统不需要自己建设机房、购买服务器、构设网络,软件采用的是租赁方式,像自来水一样,一拧“水龙头”就能出水,而且不想用的时候就关上。按软件供应商的计算方式,采用SaaS模式比传统的购买模式要节省30%至40%的成本,而且还能够保证99.9%的系统安全。总之,在满足企业的80%的业务需求前提下,还有这么大的成本优势,他们公司老总也就决定使用这套系统了。 

    在郭详被借调过来的时候,项目已经进入到了实施与部署阶段了,而且也是因为项目中出现了一些状况,该公司才向集团公司提出要求,请求集团公司信息中心派员支持。 

    郭详到了公司这边,才知道这个SaaS的DRP系统在应用过程中所碰到的一些问题,而这些问题如果得不到解决,将无法将系统继续推行下去。 

    1、 网络稳定性的问题:由于SaaS采用的是基于Internet的解决方案,也就是说,只有在能连上网络的情况下才能使用系统。在公司总部还好,由于使用的是光纤网络,系统较稳定。但在一些其它省份的专卖店、专柜,并不是有很好的网络条件的情况下,网络断线是很正常的事情。因此,只要网络断掉,系统就没有办法正常用了,这一点比不上传统的在客户端有本地数据库,既能脱机又能联机应用的系统了。 

    2、 业务需求的满足:由于SaaS的DRP是在一个公用平台上跑的,因此,公司业务部门如果有什么业务需求需要软件系统来实现的话,就会发现根本没有办法满足。因为这是一个公用平台,必须考虑到其它客户的业务模式与业务流程,如果按你的要求改了,其它客户肯定不会答应的。因此,十有八九的业务需求被这个理由给挡了下来。当然,十个需求中可能也是有二三个需求不是太合理的。但他符合企业现状,不一定规范才好,在企业里适合才好的。但到了SaaS平台里,不管是规范的需求,还是不规范的需求,要满足这个需求似乎还得所有的客户投票通过才行。 

    3、 客户端安全及IT人员配备问题:由于软件供应商之前向公司高层说:该系统可以零维护,因此在IT人员配置上可以减少三分之二。但实际情况是,在总部IT部门还得负责日常的桌面维护、机房维护,因为有OA、邮件等其它应用,这些维护工作还要做。在客户端,出问题最多一般不是DRP的客户端程序问题,而是IE的问题或者是操作系统的问题。因为IE是最容易被病毒、木马破坏的程序了。也就是因为IE常被病毒、木马程序控制,用户口令丢失的事情都发生了不止一起了。当初想要的安全性、易维护性,现在看来是扯蛋,可现在公司还不准备给郭详配备人手,现在搞的他现在部门里只有三个人,忙的就像消防队员似的,急于处理这类的问题,而真正的业务部门应用培训、业务需求分析与跟进、DRP系统向终端再推进都顾不过来了。到目前为止,这个DRP系统在总部和各分公司已经开始应用了,但目前已经再也没有能力向各代理商、专卖店推进了。 

    郭详还想接着倒他的苦水,老徐就先接过话头说:“这个系统岂不是害苦了你,既然现在这个项目用的这么痛苦,反正你们的SaaS下的这个DRP也没有花多少钱吧,不如就停掉吧,重新找一个适合你用的不就行了?” 

    郭详皱着眉头说:“我也这么想过的,也想跟公司老总提这个事情。但在提这个事情之前,我先特意去财务了解了一下这个项目的合同及付款情况。我一开始也以为这个SaaS的东西应该会比较便宜的,谁知道我去财务拿过合同一看才知道,这个项目的确没有软件费,但有实施费就是30万。公司目前有300用户,月租费就要3万,对于我们这么大规模的公司来说,其实这已经算是一笔不小的投入了。30万的实施费再加年租金是3万×12个月,一年的费用就是60多万,其实如果我们再加上20万,一共80万还够买一套传统的DRP系统了呢。但现在项目实施费已经付完了,月租也付了两个月。现在想重新来过,估计公司高层是不会同意把前面的投资都打水漂了的。再说,目前的销售旺季就要到了,现在重新选型上系统,时间也来不及了啊,所以我现在是进退两难呀。” 

    听了郭详说到这儿,哥几个都边喝茶边沉思。老万在说:“最近我们公司也在考虑更换原来那套老的DRP系统,原来也有听说SaaS模式的DRP。但从目前的情况看来,我还是先不要去吃这个苦头了。不过,其实就我了解所知,SaaS的东西在CRM或者是其它的领域用的都还不错的啊,像国外几家运营商都做得风生水起的,怎么在国内或者在DRP领域就是这个样了呢?”

三、SaaS,价值回归 or 泡沫化?

    限于本文章的篇幅,我不再详细叙述当晚我们讨论的内容,而且我也记不得太多的细节了。但整晚我们都在对SaaS模式的DRP进行讨论,最终我们也没有想出一个好的对策来帮助郭详推进他们公司的DRP系统。明显地,大家聊过了之后,他倒是心情舒畅许多,毕竟朋友在一起,还是给了不少安慰与鼓励。 

    对于SaaS模式的DRP,我们讨论的一些观点或可值得大家参考。 

    1、 SaaS适用的企业规模:根据目前SaaS的应用情况来看,不管是国外的还是国内的,主要还是以小企业为主。针对发展比较迅速的企业,由于企业都把重点放在了企业的发展上,企业的资金大部分投入到企业的发展上,所以企业的变数很大。如何减少IT的投入,和信息化的深入变化也很大,因此SaaS这种业务外包形式在ERP应用领域便大行其道。而服装企业,特别是品牌运营企业,由于进行品牌运作模式已经较为成熟,一开始的运营起点较高,因此就形成了规模较小,但发展速度飞快的特点,一般一年内可以完成100家专卖店的建设,很快就将脱离小企业的范畴。而且,从品牌运营的角度上来说,服装企业也只有在100家专卖店以上才会有规模效应,才能有效控制采购成本

 
February 17

SQL 数据日志查看器及数据库优化分析工具

SQL 数据日志查看器及数据库优化分析工具
那就是大名鼎鼎的Log Explorer for SQL Server
支持。LDF文件的查看,对于误删除数据的数据可以用此工具恢复,同时对于数据库MDF和LDF文件支持查看操作过程,同时还可以根据此工具提供的图表,对数据库进行优化工作。