表名: 1月销售 2月销售 每个表结构,字段都一样,
表结构为
流水号 时间 条码 商品名称 价格
00001 2011-01-02 123 肉 5
00002 2011-01-03 456 菜 3
想要的结果是从表1月销售,2月销售里 查询一个条码 1月15到2月15的销售记录 ,谢谢
干脆你帮写完整好代码吧,加双倍分 用VB ,数据库是在局域网上的sql 2000 , 名为fwq ,库名chaoshi, 表名就是1月销售,2月销售里, 连接数据库的代码我不会,谢谢了。
追答是不是表名只有1月销售和 2月销售???请尽量详细的描述下你的数据库
我想知道,如果跨年,你的月份表数据不就不对了吗?
还有,我大意少写了代码:
(datetime,@endDate)
return ---少写了这个
end
有跨年的,但先不用理了,能从2011年开始就可以,以后到2012的再说,说不定到时地球磁极都转了。 你就写连接数据,到查询跨月就可以,我是用VB,谢谢了。
追答Imports System.Data.SqlClient
Imports System.Data
Public Class Form1
Dim cn As SqlConnection
Dim cm As SqlCommand
Dim da As SqlDataAdapter
Dim tb As DataTable
Dim strCn As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
cntion() '打开链接数据库
Dim t = datb("select * from Myfun('2011-1-15','2011-2-15',123)") '查找想要的数据
DataGridView1.DataSource = t '将数据绑定到DataGridView1的控件
cn.Close() '关闭链接
End Sub
'''
''' 建立数据库的链接
'''
'''
Public Sub cntion()
Dim MyServer, MyDatabase, MyUser, MyPassword As String
MyServer = "255.255.0.1" '服务器地址
MyDatabase = "fwq" '数据库名
MyUser = "sa" '数据库登录名
MyPassword = "123456789" '数据库密码
strCn = "server=" & MyServer & ";database=" & MyDatabase & ";uid=" & MyUser & ";pwd=" & MyPassword
cn = New SqlConnection(strCn)
End Sub
'''
''' 根据SQL语句判断执行所影响的行数(执行insert,update,delete用)
'''
''' SQL查询语句
''' 返回执行后更改了多少条数据
'''
Public Function exec(ByVal sqlstring As String)
Dim strSql = sqlstring
cm = New SqlCommand(strSql, cn)
Dim ii = cm.ExecuteNonQuery()
exec = ii
End Function
'''
''' 根据SQL语句查询返回一张数据表
'''
''' SQL查询语句
''' 返回执行查询后的数据表
'''
Public Function datb(ByVal sqlstring As String)
Dim strSql = sqlstring
da = New SqlDataAdapter(strSql, cn)
tb = New DataTable()
da.Fill(tb)
datb = tb
End Function
End Class
以上是vb希望你能举一反三
再追问下我改下函数
我还没测试,先感谢,添加了工程后,要添加什么控件之类吗? 追加了,给你改函数
追答create function Myfun(@startDate varchar(10),@endDate varchar(10),@tiaoma int)
returns @Myfun table(
流水号 char(5),
时间 datetime,
条码 int,
商品名称 varchar(20),
价格 money
)--以上表结构和你的表结构应该一样,不同请改
as
begin
insert into @Myfun
select * from(select * from [1月销售]
union all
select * from [2月销售]) as p1
where p1.条码=@tiaoma and (p1.时间 between convert(datetime, @startDate) and convert(datetime,@endDate))
return
end
--因为函数是手写的没验证,现在验证后的语法错误已经修改
--使用SQL查询处理器执行下代码,数据库中就存在此函数了
--VB中的语句:
--Dim t = datb("select * from Myfun('2011-1-15','2011-2-15',123)") '查找想要的数据
--其中:"select * from Myfun('2011-1-15','2011-2-15',123)"就是SQL查询语句
--DataGridView1.DataSource = t '将数据绑定到DataGridView1的控件
--也就是需要添加控件:"DataGridView"