求SQL查询语句

zhangfengyi 2011-12-20 02:44:05
以下是我在前一个贴子中求助的内容,问题已经解决,用的是union all连接串,能够查询,现在又有新问题:多个人查询时有时查不到,是不是有什么冲突
http://topic.csdn.net/u/20111009/15/bf137677-588d-4c2c-9374-9b70de0b3a41.html

这是一个查询界面,起始日期与结束日期的间隔为60天,也就是能查询60天的内容,后台数据库每一天对应一个库表(也就最多要查询60个库表),这样的查询用什么方式比较好,库表如下所示:
http://www.e-unionpay.com/images/QQ截图未命名_6.jpg
...全文
157 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangfengyi 2012-01-16
  • 打赏
  • 举报
回复
存储过程这样写:

create procedure [dbo].[reader_proc]
(
@param varchar(max)
)
as
declare @sql varchar(max)
set @sql=@param
exec @sql


vb.net中调用存储过程:

sql = "select * from [L2SettleDB].[dbo].[l2_L20110102] where merch_id='002853110000008' and sett_postdate>='20110102' and sett_postdate<='20110228'"
Dim strsql = "data source=192.168.0.188;database=L2SettleDB;User ID=sa;pwd=12345678" 'OK 清算机
myconnection = New SqlConnection(strsql)
Dim ds As New DataSet()
Dim da1 As New SqlDataAdapter()
da1.SelectCommand = New SqlCommand()
da1.SelectCommand.Connection = myconnection
da1.SelectCommand.CommandText = "reader_proc"
da1.SelectCommand.CommandType = CommandType.StoredProcedure
da1.SelectCommand.Parameters.Add("@param", SqlDbType.VarChar)
da1.SelectCommand.Parameters("@param").Value = sql
'da1.Fill(ds)

SQL语句在程序中动态拼写,传给存储过程,这样写对吗,为什么执行这个语句就不能往下执行了呢?da1.Fill(ds),有什么错误的地方吗?
zhangfengyi 2011-12-30
  • 打赏
  • 举报
回复
多个表中查询的数据怎样插入到临时表中
zhangfengyi 2011-12-27
  • 打赏
  • 举报
回复
我试了一下,用一个表查询不会出现问题,我想如果把多个表查询的结果放在一个临时表中,多人查询都放在临时表中,这样会有问题吗
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 fredrickhu 的回复:]

这个怎么用,不会这么用,这是我程序里的代码

VB.NET code

If stSql = "" Then
stSql = "select * from [L2SettleDB].[dbo].[l2_L" &amp; Format(DateAdd("d", i, da), "yyyyMMdd") &amp; "] " ……
[/Quote]
zhangfengyi 2011-12-26
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 qianjin036a 的回复:]
引用 11 楼 zhangfengyi 的回复:

只有select查询会导致数据冲突吗


如果你要从这个表连到那个表,查询速度变慢的话,是可能引起冲突的.
[/Quote]
表很多,在1-60之间,用union all连接,这个有问题吗,或者有什么解决办法
勿勿 2011-12-26
  • 打赏
  • 举报
回复
是不是本来就没有数据呢?
-晴天 2011-12-26
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zhangfengyi 的回复:]

只有select查询会导致数据冲突吗
[/Quote]

如果你要从这个表连到那个表,查询速度变慢的话,是可能引起冲突的.
zhangfengyi 2011-12-26
  • 打赏
  • 举报
回复
只有select查询会导致数据冲突吗
gogodiy 2011-12-20
  • 打赏
  • 举报
回复
1W条就要放一张表?太浪费了吧,表里加个字段表明具体哪一天不就好了。多表联接查询还不如一张表里查呢。
zhangfengyi 2011-12-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ssp2009 的回复:]
动态执行

SQL code

delcare @sql varchar(max)
select @sql=isnull(@sql+'union ','')+'select * from '+name from sys.object
where right(name,8) between @begintime and @endtime
exec(@sql)
……
[/Quote]
这样就不会冲突了吗
zhangfengyi 2011-12-20
  • 打赏
  • 举报
回复
有数据,多的时候在1W条
--小F-- 2011-12-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhangfengyi 的回复:]
这个怎么用,不会这么用,这是我程序里的代码

VB.NET code

If stSql = "" Then
stSql = "select * from [L2SettleDB].[dbo].[l2_L" & Format(DateAdd("d", i, da), "yyyyMMdd") & "] " & strSql
……
[/Quote]

写成存储过程调用。
--小F-- 2011-12-20
  • 打赏
  • 举报
回复
是不是本身就没有数据?

每天一个库表 真是够纠结的。
zhangfengyi 2011-12-20
  • 打赏
  • 举报
回复
这个怎么用,不会这么用,这是我程序里的代码

If stSql = "" Then
stSql = "select * from [L2SettleDB].[dbo].[l2_L" & Format(DateAdd("d", i, da), "yyyyMMdd") & "] " & strSql
Else
stSql = stSql & " union all " & "select * from [L2SettleDB].[dbo].[l2_L" & Format(DateAdd("d", i, da), "yyyyMMdd") & "] " & strSql
End If
快溜 2011-12-20
  • 打赏
  • 举报
回复
动态执行
delcare @sql varchar(max)
select @sql=isnull(@sql+'union ','')+'select * from '+name from sys.object
where right(name,8) between @begintime and @endtime
exec(@sql)
zhangfengyi 2011-12-20
  • 打赏
  • 举报
回复
每天几千条至1W条数据
Mr_Nice 2011-12-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 zhangfengyi 的回复:]
以下是我在前一个贴子中求助的内容,问题已经解决,用的是union all连接串,能够查询,现在又有新问题:多个人查询时有时查不到,是不是有什么冲突
http://topic.csdn.net/u/20111009/15/bf137677-588d-4c2c-9374-9b70de0b3a41.html

这是一个查询界面,起始日期与结束日期的间隔为60天,也就是能查询60天的内容,后台数据库……
[/Quote]

动态拼接,union all 执行。 估计效率不高。

LZ每天的库表数据量如何?
快溜 2011-12-20
  • 打赏
  • 举报
回复

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧