我有下表
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
我有一张桌子上有相似的行...像
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 ....有人可以告诉我该怎么做吗???
提前致谢。
在windows xp中使用批处理脚本(.bat文件),我将如何阅读文本文件并查找存在多少个字符实例?
例如,我有一个包含以下内容的字符串:
""OIJEFJ"JOIEJKAJF"""LKAJFKLJEIJ""JKLFJALKJF"LKJLKFA""""LKJKLFJLKADJF
Run Code Online (Sandbox Code Playgroud)
我希望它计算"文件中有多少并返回计数.
原始问题:
我正在使用每月生成一个新表的数据库并附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
我试图返回我的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) 我正面临下面的批处理脚本的问题,我必须在我的批处理文件中给出硬编码路径的相对路径.
下面是我的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)
任何帮助将非常感激.谢谢.:)
我有一个供应商数据库,用于具有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次.
可能有更好的方法来做到这一点,但我还没有确定它,所以任何提示你都会受到赞赏.
目前正在查看@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) 我正在编写一个Python代码,我需要使用MySQLdb从MySQL数据库中检索数据.原始数据库的一部分如下所示:

我用过这个命令
SELECT TimeStamp,Pac
FROM SolarData
WHERE DATE(`TimeStamp`) = CURDATE()
GROUP BY HOUR(TimeStamp);
Run Code Online (Sandbox Code Playgroud)
按小时对数据进行分组,但结果不符合我的预期:

每小时显示的Pac号与每小时的第一条记录的号码相同.这不是整个小时的累积数.我需要的是整个小时的累计数.
我有一个存储过程,它看起来像这样:
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 ×4
sql-server ×3
batch-file ×2
t-sql ×2
count ×1
dynamic-sql ×1
html ×1
mysql ×1
oracle ×1
partitioning ×1
windows-xp ×1
xhtml ×1
xpath ×1