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 [进货表]
相关问答:
我一个项目,有个插入操作,具体是这样的:
我有进货信息表。在出货时选择相应的进货信息,输入数量,选择部门后,点保存按钮,由于网络延时,点一下没有反映,于是用户就又点一下,导致一次插入了两条记录:
例:
......
字段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 ......
请教高手:
以下是数据库中的三条记录,英文为字段名称
id planname TaskBeginTime Status
329 2010年03 ......
我觉得mysql和sqlserver有共同的地方:
有个问题是关于表的锁问题:
进程A 进程B
select * from user where id in lock share mode(共享锁)
&nb ......
查询学生平均成绩及其名次
SELECT 1+(SELECT COUNT( distinct 平均成绩)
from (SELECT S#,AVG(score) AS 平均成绩
from SC&n ......