15 12
发新话题
打印

各位大哥点评一下我的SQL

进销存.....


木人帮LZ看,都不讨论技术啦?
   确实看着有点晕....

TOP

引用:
原帖由 罘詈 于 2008-1-28 14:18 发表
进销存.....


木人帮LZ看,都不讨论技术啦?
   确实看着有点晕....
你不知道楼主是天下第一啊。。。大不敬。。。
超级简单易用的音视频转换组件 支持RMVB解码 FFmpeg for Delphi / VB http://www.CCAVC.com

TOP

很好,很强大
晚上没激情~~~~

TOP

太强了,,
笑死我了,,,
彻底崩溃,,,,,,

TOP

改进后的语句!

CString where="";
   CString between="";

   between.Format(" and 日期 between #%s# and #%s#",CPublic:ate1,CPublic:ate2);
   UpdateData(1);
   if((m_lDWID==0)&&(m_KindID=="")&&(m_lStoreID==0)&&(m_lYGID==0))
   {//全部查询
    between="";
        where.Format("WHERE 日期 between #%s# and #%s#",CPublic:ate1,CPublic:ate2);
   }
   else if((m_lDWID>0)&&(m_KindID=="")&&(m_lStoreID==0)&&(m_lYGID==0))
   {//按单位查询
    where.Format("WHERE 商品排行.单位ID = %d",m_lDWID);
   }

   else if((m_KindID!="")&&(m_lDWID==0)&&(m_lStoreID==0)&&(m_lYGID==0))
   {//按类别查询
    where.Format("WHERE 商品排行.类别编码 like '%s'",m_KindID);
   }
   else if((m_KindID=="")&&(m_lDWID==0)&&(m_lStoreID>0)&&(m_lYGID==0))
   {//按仓库查询
     where.Format("WHERE 商品排行.仓库ID = %d",m_lStoreID);
   }
   else if((m_KindID=="")&&(m_lDWID==0)&&(m_lStoreID==0)&&(m_lYGID>0))
   {//按员工查询
     where.Format("WHERE 商品排行.员工ID = %d",m_lYGID);
   }

else if((m_KindID!="")&&(m_lDWID!=0)&&(m_lStoreID==0)&&(m_lYGID==0))
   {//按单位,类别查询
     where.Format("WHERE 商品排行.单位ID = %d AND 商品排行.类别编码 like '%s'",m_lDWID,m_KindID);
   }

else if((m_KindID!="")&&(m_lDWID==0)&&(m_lStoreID>0)&&(m_lYGID==0))
{//按仓库,类别查询
    where.Format("WHERE 商品排行.仓库ID = %d AND 商品排行.类别编码 like '%s'",m_lStoreID,m_KindID);
}

else if((m_KindID!="")&&(m_lDWID==0)&&(m_lStoreID==0)&&(m_lYGID>0))
   {//按员工,类别查询
where.Format("WHERE 商品排行.员工ID = %d AND 商品排行.类别编码 like '%s'",m_lYGID,m_KindID);
}

else if((m_KindID=="")&&(m_lDWID>0)&&(m_lStoreID>0)&&(m_lYGID==0))
   {//按单位,仓库查询
where.Format("WHERE 商品排行.单位ID = %d AND 商品排行.仓库ID = %d",m_lDWID,m_lStoreID);
}

else if((m_KindID=="")&&(m_lDWID>0)&&(m_lStoreID==0)&&(m_lYGID>0))
   {//按单位,员工查询
where.Format("WHERE 商品排行.单位ID = %d AND 商品排行.员工ID = %d",m_lDWID,m_lYGID);
}

else if((m_KindID=="")&&(m_lDWID==0)&&(m_lStoreID>0)&&(m_lYGID>0))
   {//按仓库,员工查询
where.Format("WHERE 商品排行.仓库ID = %d AND 商品排行.员工ID = %d",m_lStoreID,m_lYGID);
}

else if((m_KindID!="")&&(m_lDWID>0)&&(m_lStoreID>0)&&(m_lYGID==0))
   {//按单位,类别,仓库查询
where.Format("WHERE 商品排行.单位ID = %d AND 商品排行.类别编码 like '%s' AND 商品排行.仓库ID = %d",m_lDWID,m_KindID,m_lStoreID);
}

else if((m_KindID!="")&&(m_lDWID>0)&&(m_lStoreID==0)&&(m_lYGID>0))
   {//按单位,类别,员工查询
where.Format("WHERE 商品排行.单位ID = %d AND 商品排行.类别编码 like '%s' AND 商品排行.员工ID = %d",m_lDWID,m_KindID,m_lYGID);
}

else if((m_KindID=="")&&(m_lDWID>0)&&(m_lStoreID>0)&&(m_lYGID>0))
   {//按仓库,单位,员工查询
where.Format("WHERE 商品排行.单位ID = %d AND 商品排行.仓库ID = %d AND 商品排行.员工ID = %d",m_lDWID,m_lStoreID,m_lYGID);
}

else if((m_KindID!="")&&(m_lDWID==0)&&(m_lStoreID>0)&&(m_lYGID>0))
   {//按仓库,类别,员工查询
where.Format("WHERE 商品排行.仓库ID = %d AND 商品排行.类别编码 like '%s' AND 商品排行.员工ID = %d",m_lStoreID,m_KindID,m_lYGID);
}

else if((m_KindID!="")&&(m_lDWID>0)&&(m_lStoreID>0)&&(m_lYGID>0))
   {//按单位,类别,仓库,员工查询
where.Format("WHERE 商品排行.单位ID = %d AND 商品排行.类别编码 like '%s' AND 商品排行.仓库ID = %d AND 商品排行.员工ID = %d",m_lDWID,m_KindID,m_lStoreID,m_lYGID);
}

where+=between;
sql.Format("SELECT 商品排行.商品ID, 商品排行.商品编码, 商品排行.商品名称, \
Sum(商品排行.发生数量) AS 销售数量, \
Sum(商品排行.发生成本) AS 销售成本, \
Sum(商品排行.发生金额) AS 销售金额, \
Sum(商品排行.利润) AS 利润 ,\
IIf((SELECT Sum(商品排行.发生金额) FROM 商品排行 %s)=0,0,Sum(商品排行.发生金额)/(SELECT Sum(商品排行.发生金额) FROM 商品排行 %s)) AS 销售比重, \
IIf((SELECT Sum(商品排行.利润) FROM 商品排行 %s)=0,0,Sum(商品排行.利润)/(SELECT Sum(商品排行.利润) FROM 商品排行 %s)) AS 利润比重 \
FROM 商品排行 \
%s \
GROUP BY 商品排行.商品ID, 商品排行.商品编码, 商品排行.商品名称",where,where,where,where,where);

TOP

 15 12
发新话题