小编And*_*y M的帖子

使用像while循环一样的递归公用表表达式

我有下表

   Log

 Date            date
 Description     varchar
 ID              integer
Run Code Online (Sandbox Code Playgroud)

给定日期作为参数,我必须找到否.或者每天从开始日期到使用递归cte后的一个月记录的日志数. 有些天可能没有任何日志,所以我必须将计数打印为0.

例如:

  select * from Log
Run Code Online (Sandbox Code Playgroud)

回报

  1   insert      2011-01-17
  2   blah blah   2011-01-23
  3   blah        2011-07-07
Run Code Online (Sandbox Code Playgroud)

对于2011-01-17作为输入,输出应该是

   2011-01-17    1
   2011-01-18    0
   2011-01-19    0
   ....
   2011-01-23    1
   .....
   2011-02-17    0
Run Code Online (Sandbox Code Playgroud)

我必须使用递归 cte来做那个.我不知道如何在每次递归中将日期递增1以及如何停止\终止递归.

这是我到目前为止所做的事情:

 with cte as    (
    select '2011-01-17' as dat,count(*) as count 
from log group by date 
having date='2011-01-17' 

union all 

select dateadd(day,1,dat) as dat,count(*) as count 
from log,cte 
group by date 
having date=dateadd(day,1,dat) 
where dat<'2011-02-17' …
Run Code Online (Sandbox Code Playgroud)

sql t-sql common-table-expression sql-server-2008 recursive-cte

2
推荐指数
1
解决办法
2373
查看次数

如何动态更新前n行?

我有一张桌子上有相似的行...像

PartNo  SerialNo  Inven_Qty  Status
------  --------  ---------  ------
001A    NULL      1          IN
001A    NULL      1          IN
001A    NULL      1          IN
001A    NULL      1          IN
Run Code Online (Sandbox Code Playgroud)

现在我要动态更新行。.我有一个网页,在其中输入PartNo,项目的值是OUT ... ex 2个项目是OUT ...我想更新2行的Inven_Qty 0,状态为OUT ....有人可以告诉我该怎么做吗???

提前致谢。

sql oracle

2
推荐指数
1
解决办法
9947
查看次数

批处理脚本 - 计算文件中字符的实例

在windows xp中使用批处理脚本(.bat文件),我将如何阅读文本文件并查找存在多少个字符实例?

例如,我有一个包含以下内容的字符串:

""OIJEFJ"JOIEJKAJF"""LKAJFKLJEIJ""JKLFJALKJF"LKJLKFA""""LKJKLFJLKADJF
Run Code Online (Sandbox Code Playgroud)

我希望它计算"文件中有多少并返回计数.

windows-xp batch-file count

2
推荐指数
1
解决办法
5100
查看次数

如何在SQL查询的FROM区域中使用动态表名?

原始问题: 我正在使用每月生成一个新表的数据库并附YYYY_MM加到新表名.我需要编写一个查询,查看当前月份的表格.抛开日期函数,我发现我无法构建表名!

示例表名称将是DOCUMENTS_2011_10.

我尝试使用这样的基本脚本,但它在语法问题上失败:

SELECT * FROM ('DOCUMENTS_'+'2011_10')
Run Code Online (Sandbox Code Playgroud)

有什么建议?

附加信息: 这些表由我们的企业门户应用程序(Oracle WebCenter Interaction)生成.重新设计此应用程序以更改其处理数据的方式是我无法控制的.

我被要求提取一份报告,显示每月生成的这些表中的关键数据.

我的方法是创建一个SQL Reporting Service订阅,每月以Excel格式通过电子邮件发送数据.
我需要有关此查询的帮助才能将其插入到报告服务中,因此我不必每个月都要使用查询来更改表名.

由于报告服务将每月触发并生成报告,因此不需要数据存档或任何类型的临时功能.

使用动态SQL我能够设置表名,不幸的是,当我尝试添加其余的查询时,它会抱怨字符限制问题.知道怎么解决这个问题吗?

这让我得到了正确的表:

Declare @tblName Varchar(400)
Declare @SQL Varchar(500)

Set @tblName = 
'analyticsdbuser.ASFACT_DOCUMENTVIEWS_'
+ CONVERT(VARCHAR,DATEPART(yyyy,GETDATE())) 
+ '_'
+ CONVERT(VARCHAR, RIGHT('0' + RTRIM(MONTH(GETDATE())-1), 2));

SET @SQL = 'SELECT * FROM ' + @Tblname;
Exec(@SQL)
Run Code Online (Sandbox Code Playgroud)

这是所有需要执行但不适合@SQL的其他查询:

SELECT   t2.ID,
         t2.USERID,
         t3.NAME,
         t2.DOCUMENTID,
         t1.NAME AS DOC_NAME,
         t4.PROPERTYID,
         t5.NAME AS PROP_NAME,
         t4.VALUE

FROM     ASFACT_DOCUMENTVIEWS_2011_10 AS t2 INNER JOIN
         ASDIM_USERS AS t3 ON t3.USERID …
Run Code Online (Sandbox Code Playgroud)

sql partitioning sql-server-2005 dynamic-sql sql-server-2008

2
推荐指数
1
解决办法
9503
查看次数

如何从XPath中的button元素中选择第一个id?

我试图返回我的XPath查询和网页的第一个元素,但不确定为什么这不适用于谷歌浏览器.我尝试了各种各样的变化,但这是不成功的.

基本的例子在我的案例中返回:

INPUT: //button[@data-qtip='Next Page']/@id
OUTPUT: [id=?"button-1135-btnEl",id=?"button-1101-btnEl"]
Run Code Online (Sandbox Code Playgroud)

所以我的猜测是选择第一项可以按照以下方式完成,但对我来说都没有用.

INPUT: //button[@data-qtip='Next Page' and position() = 1]/@id
OUTPUT: [id=?"button-1135-btnEl",id=?"button-1101-btnEl"]
INPUT: //button[@data-qtip='Next Page']/@id[1]
OUTPUT: [id=?"button-1135-btnEl",id=?"button-1101-btnEl"]
Run Code Online (Sandbox Code Playgroud)

html xhtml xpath google-chrome

2
推荐指数
1
解决办法
1508
查看次数

如何在批处理文件中提供相对路径?

我正面临下面的批处理脚本的问题,我必须在我的批处理文件中给出硬编码路径的相对路径.

下面是我的soapUI cmd行执行文件,其中soapui-settings.xml是包含我所有soap设置的文件,project.xml是我的testcases.我这里有硬编码路径.因为我要检查这个文件,如果任何其他人执行这个文件将无法工作,因为他们的机器上不存在该路径.我如何在Windows上实现这一目标?有没有办法可以在我的批处理文件中使用硬编码的相对路径并运行它?

这是我的示例文件:

cd C:\soapui4.5\soapUI-Pro-4.5.0\bin  
testrunner.bat -tC:\Users\jvihol\soapui-settings.xml C:\Users\jvihol\Documents\April-RTM-soapui-project.xml
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激.谢谢.:)

batch-file

2
推荐指数
1
解决办法
2万
查看次数

供应商数据库包含具有100个用户定义的字符串列的表,需要查找该表中非空的所有实例

我有一个供应商数据库,用于具有100个"用户定义字符串"列的Web应用程序.它们的数据类型为varchar,长度为255.

我需要返回所有非空行,以便我可以找出每个行中存储的内容.多年来输入已无法控制,因此userdefinedstring1可以包含多行中的文本,日期,数字,空字符串或NULL.

我最初的解决方案就是

SELECT 
* 
FROM userdefinedstring table 

WHERE userdefinedstring1 IS NOT NULL 

OR userdefinedstring2 IS NOT NULL 
Run Code Online (Sandbox Code Playgroud)

再重复98次.

可能有更好的方法来做到这一点,但我还没有确定它,所以任何提示你都会受到赞赏.

sql sql-server sql-server-2008

2
推荐指数
1
解决办法
625
查看次数

NULL参数检查 - WHERE与IF

目前正在查看@return_count作为参数的存储过程.下面是两个方法的独立示例,如果NULL传入a,我可以设置它的值.

无法确定查询优化器是否会将它们视为相同,或者一种方法是否优于另一种方法.

DECLARE @return_count int
SET @return_count = null
IF @return_count is null
  BEGIN
    SELECT @return_count = 10
  END
GO  

DECLARE @return_count int
SET @return_count = null    
BEGIN
  SELECT @return_count = 10
  WHERE @return_count is null
END
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

2
推荐指数
1
解决办法
90
查看次数

MySQL组由TimeStamp提供

我正在编写一个Python代码,我需要使用MySQLdb从MySQL数据库中检索数据.原始数据库的一部分如下所示:

我用过这个命令

SELECT TimeStamp,Pac 
FROM SolarData 
WHERE DATE(`TimeStamp`) = CURDATE() 
GROUP BY HOUR(TimeStamp);
Run Code Online (Sandbox Code Playgroud)

按小时对数据进行分组,但结果不符合我的预期:

每小时显示的Pac号与每小时的第一条记录的号码相同.这不是整个小时的累积数.我需要的是整个小时的累计数.

mysql

2
推荐指数
1
解决办法
283
查看次数

WHERE IN 子句中的存储过程参数

我有一个存储过程,它看起来像这样:

SELECT * FROM empTable
WHERE empCode IN (@employeeCode)
Run Code Online (Sandbox Code Playgroud)

@employeeCode接受来自另一个应用程序的输入,而我无法控制该应用程序。它会给我string这样的东西:'M06', 'R02', 'B19', 'C10'

当我执行该过程时,它返回 0 行。但是,当我使用以下查询在 SQL Server 中手动运行查询时:

SELECT * FROM empTable
WHERE empCode IN ('M06', 'R02', 'B19', 'C10')
Run Code Online (Sandbox Code Playgroud)

它返回 15 行。

我怀疑当employeeCode接受输入时,它假设整个'M06', 'R02', 'B19', 'C10'为 ONE string。有人能证实这一点吗?如果这是真的,我该如何解决?

编辑:我正在使用 SQL Server 2000

sql-server stored-procedures sql-server-2000

2
推荐指数
1
解决办法
1万
查看次数