易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL语句 - MS-SQL Server / 疑难问题



进货日期 货物编码
2010-01-01 001
2010-01-02 002
2010-05-01 001
2010-05-02 004
2010-05-04 001


求SQL语句:查询表中连续3日(或N日,截止日期为当前日期)未进货的货物编码
是查最近3天未进货的,还是存在连续3天未进货的?

最近n天为进货好做 连续n天为进货不好做 
楼主说清楚点


看看top

select * from 表 where (进货日期 BETWEEN GETDATE() - 3 AND GETDATE()) and 货物编码='001'

--在查询区间内,连续3天没有进货的货物编码
SQL code:

CREATE TABLE [进货表]
(
[进货日期] DATETIME
,[货物编码] VARCHAR(10)
)
GO
INSERT INTO [进货表] VALUES ('2010-01-01', '001')
INSERT INTO [进货表] VALUES ('2010-01-02', '002')
INSERT INTO [进货表] VALUES ('2010-05-01', '001')
INSERT INTO [进货表] VALUES ('2010-05-02', '004')
INSERT INTO [进货表] VALUES ('2010-05-04', '001')
GO

DECLARE @BeginDate DATETIME
,@EndDate DATETIME
,@Day INT

SET @BeginDate = '2010-05-01'
SET @EndDate = '2010-05-08'
SET @Day = 3 --设置连续天数


;WITH CTE
AS
(
SELECT [进货日期]
,[货物编码]
,ROW_NUMBER() OVER(PARTITION BY [货物编码] ORDER BY [进货日期]) AS px1
from (
SELECT [进货日期]
,[货物编码]
from [进货表]


相关问答:

Asp+sql server问题 - Web 开发 / ASP

我一个项目,有个插入操作,具体是这样的:
我有进货信息表。在出货时选择相应的进货信息,输入数量,选择部门后,点保存按钮,由于网络延时,点一下没有反映,于是用户就又点一下,导致一次插入了两条记录:
例: ......

求一个SQL语句 - MS-SQL Server / 基础类

字段1,字段2.....字段N,Status,ParentID
1,Name1....test1,1,99
1,Name1....test1,3,99
1,Name2....test2,1,101
1,Name2....test2,3,101
1,Name3....test3,2,101
1,Name1....test1,4,101
想要的结果是:
1,Na ......

SQL语句问题 - MS-SQL Server / 疑难问题

请教高手:
 以下是数据库中的三条记录,英文为字段名称  
  id planname TaskBeginTime Status
329 2010年03 ......

mysql区没高手 - MS-SQL Server / 基础类

我觉得mysql和sqlserver有共同的地方:
有个问题是关于表的锁问题:
进程A 进程B
select * from user where id in lock share mode(共享锁)
&nb ......

SQL不明白 - MS-SQL Server / 应用实例

查询学生平均成绩及其名次 
  SELECT 1+(SELECT COUNT( distinct 平均成绩) 
  from (SELECT S#,AVG(score) AS 平均成绩 
  from SC&n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号