在前一段时间中遇到一个需求..统计某一种商品在某一天中的销售数量,当天没有销售的时候,数量显示0.
这个不能用一般的Group来实现.所以需要变通一下,跟一个有1-31的一个 *** 来Group.
有2种方案.
planA:
SELECT SUM(ISNULL(Bidstrade_Money, 0)) AS [MONEY], a.number AS [DAY]FROM MASTER..spt_values a LEFT JOIN DDPM_T_Comm_BidsTrade b ON a.type = 'p' AND month([BidsTrade_DateCreated])='5' AND a.number = DAY(b.[BidsTrade_DateCreated]) AND YEAR([BidsTrade_DateCreated]) = '2010' WHERE a.number BETWEEN 1 AND 31GROUP BY a.numberorder by DAY
使用MASTER..spt_values(产生一定范围的数字的数字,这里需要产生1-31的数字.)

但是这一种 *** 有缺陷,每一个月不一定都是31天.并且我们配置的SQL账号不一定有权限来访问这个函数.
Code highlighting produced by Actipro CodeHighlighter (freeware)
-->USE [CN80s.DDPM]
SET ANSI_NULLS ON
GO
CREATE function [dbo].[FormatDateTime](@Date datetime,@formatStr varchar(20))
begin
declare @tempformat varchar(20)
if @formatStr='MM/DD/YYYY'
set @retstr = Convert(char(10),@Date,20)
set @retstr= Convert(varchar(10),@Date,102)
set @retstr= Convert(varchar(10),@Date,111)
set @retstr= Convert(varchar(10),@Date,103)
set @retstr= Convert(varchar(10),@Date,104)
set @retstr= Convert(varchar(10),@Date,105)
set @retstr= Convert(varchar(10),@Date,112)
begin
begin
set @str2=left(@str2,@index-1)
select @tempstr = Convert(char(10),@Date,20),@str1=isnull(@str1,''),@str2=isnull(@str2,''),@str3=isnull(@str3,''),@j=0
begin
select @retstr=left(@tempstr,@index-1)+@str1,@j=@j+1
select @tempstr=right(@tempstr,len(@tempstr)-@index)
set @retstr=@retstr+@tempstr+@str3
return @retstr
可以看看调用这个函数的结果.
SELECT * FROM CN80s_DDPM_FN_GETDATE('2010-05-1','2010-05-31',null)
参数依次为:开始时间,结束时间,显示状态(null:显示所有日期,0显示所有工作日(星期一~星期五),1:显示周末,2显示周末)

当然这个函数有其他的扩展应用请各位看官天马行空.~
实际应用,这里写了一个存储过程
SELECT a.day , isnull(BidsCombo_Price,0) as BidsCombo_Price, isnull( BidsTrade_Count,0) as BidsTrade_CountFROM ( SELECT year(Date) as year,month(Date) as month,day(Date) as [day] FROM dbo.CN80s_DDPM_FN_GETDATE(@beginTime,@endTime,NULL) ) a LEFT JOIN DDPM_V_BidsTradeRecount b ON a.day = b.day AND a.year=b.year AND a.month=b.month GO
原文标题:一个SQL Group问题
链接:http://www.cnblogs.com/willsonchan/archive/2010/08/01/1789980.html
正在启动windows时间长怎么办 小编带来了Windows 7/8.1正在启动windows时间长解决方法,假如有朋友在安装完Windows系统之后一直停留在“正在启动windows”的话,不妨试一试下文的方法哦~ 原因:Windows 7/8.1不完全支持UEFI,需要CSM(Comp...
在某些电脑中,机器内部蜂鸣器与系统的声音输出方案是相关联的,这样一来会导致当系统输出声音时,即使电脑没有连接外部音响或耳机,也会通过内置蜂鸣器发出“嘟嘟哔哔”的声音。这个问题主要出现在Windows 7电脑中,假如你的电脑恰好遇到了这样的问题,可参考下面的方法来解决: 1、在桌面“计算机”图标上右...
一些用户的Windows 7系统开机后出现黑屏,代码为 Windows无法启动: WindowsSystem32ConfigSystem”。这个问题该如何修复呢?现在小编就给大家分析一下吧。 其实这个代码的意思是引导文件丢失了,引导文件(NTLDR)一般存放于C盘根目录下,是一个具有隐藏和只读属性...
ubuntu14.04应用窗口列表在哪里?在ubuntu下打开个几个应用窗口最小化后怎么切换呢,应用窗口列表在哪里呢? 1、多打开几个chrome浏览器窗口。 2、然后都做最小化处理。 3、现在我们在桌面左边的面板上找到"左右两边有小白点"的chrome浏览器应用图标,这就是chr...
故障分析: 主要原因应该是不存在软盘驱动器或驱动器未安装,找到故障原因后,Windows 7 32位系统只要将软盘驱动器禁用就可以了。 解决措施: 1、右键点击计算机,选择管理,打开计算机管理窗口; 2、在计算机管理中,找到设备管理器,在右边的软盘控制器中右击,选择卸载即可。 以...
星际争霸是一款非常经典的战争策略游戏,虽然已有十多年的历史,但依然有一批忠实的游戏玩家坚守着星际战争,而随着Windows系统的不断更新,Windows 7下玩星际争霸已经不能像WinXP那样顺利了,很多Windows 7玩家在玩星际争霸时候都会出现花屏问题,那么我们该如何应对呢 Windo...