当前位置:首页 » 编程语言 » subsql
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

subsql

发布时间: 2022-05-28 11:03:08

sql 竖表变横表,自适应的,谁能帮看看。

用sql本身难以实现。 你可以对生成的竖表(转成csv格式 或 txt 格式)文件,再用pascal 或 c 语言编制转换程序 进行后处理。

❷ 用VBA语言调用sql数据库数据到excel中

VBE 工具 引用,选中 Microsoft ActiveX Data Object 2.8 Library
我不清楚是不是UFDATA_013_2008表的VENDOR列的数据,如果不是,你自己改一下SQL语句吧,sql = "select VENDOR from UFDATA_013_2008"

Sub SQL数据导入()

Dim cn As New ADODB.Connection
Dim rs As ADODB.Recordset
Dim str As String
Dim sql As String
Dim i As Integer

str = "Provider=SQLOLEDB;Data Source=SQLSERVER服务器名或IP;DATABASE=数据库;UID=用户名;PWD=密码"
cn.Open str
Set rs = New ADODB.Recordset
sql = "select VENDOR from UFDATA_013_2008"
rs.Open sql, cn, adOpenStatic, adLockOptimistic

If Not rs.EOF Then
For i = 1 To rs.RecordCount
Sheet2.Cells(i, 1).Value = rs.Fields(0).Value
Next i
rs.MoveNext
End If
rs.Close
cn.Close
End Sub

❸ SQL 查询语句

一楼的写法可以,但是不推荐用,因为那是老版本的写法
select b.Name,a.sBill_TicketID,sum(a.fBill_OutMoney)
from a inner join b on a.sub_dh=b.sub_dh
group by b.Name,a.sBill_TicketID

如果还想看到明细可以这样:
select b.Name,a.sBill_TicketID,sum(a.fBill_OutMoney) over (partition by b.Name,a.sBill_TicketID )
from a inner join b on a.sub_dh=b.sub_dh

❹ SQL server2000 中如何将,表“sub1”,将列名为“ID”中的“0402010B00”,按照列名为“记录时间”查找

SQLSERVER支持TOP N,按照时间倒序排,取第一个
select top 1 * from sub1 where [id] = '0402010B00' order by 记录时间 desc

❺ 怎么在SQL中设置外键

sql server中建立外键约束有3中方式:enterprise manager中,tables,design table,设置table的properties,可以建立constraint, reference key;enterprise manager中,diagrams, new diagrams,建立两个表的关系;直接用transact sql语句。

1、三个方法都需要先建立数据表。

1)创建表author :

create table [dbo].[author] (
[id] [bigint] not null ,
[authorname] [char] (10) null ,
[address] [char] (480) null ,
[introction] [ntext] null
)

2)创建表mybbs:

reate table [dbo].[mybbs] (
[id] [bigint] identity (1, 1) not null ,
[authorid] [bigint] not null ,
[title] [char] (40) null ,
[date_of_created] [datetime] null ,
[abstract] [char] (480) null ,
[content] [ntext] null
)

2、设置表mybbs中的authorid为外键,参照author表的id字段,直接使用transact sql语句,过程如下:

1)增加表mybbs(authorid)的外键约束fk_mybbs_author,表mybbs中的authorid受表author中的主键id约束:

begin transaction
alter table dbo.mybbs add constraint fk_mybbs_author
foreign key (authorid)
references dbo.author([id]) on update cascade on delete cascade

2)删除外键约束fk_mybbs_author:
--alter table dbo.mybbs drop constraint fk_mybbs_author
--rollback
commit transaction

上面on update cascade,on delete cascade两个选项,指明以后author表的id字段有delete,update操作时,mybbs表中的id也会被级联删除或更新。如果没有选中,是不可以对author表中已被mybbs表关联的id进行update或者delete操作的。

拓展资料:

SQL的主键和外键的作用:

1、插入非空值时,如果主键表中没有这个值,则不能插入。

2、更新时,不能改为主键表中没有的值。

3、删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。

4、更新主键记录时,同样有级联更新和拒绝执行的选择。

简而言之,SQL的主键和外键就是起约束作用。

❻ 怎么在excel中正确使用SQL的查询语句

ALT+F11,打开VBE,插入一个模块,把以下代码复制进去:
Sub dosql(sql, a As Range)
Dim Conn As Object
Set Conn = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.Recordset")
PathStr = ThisWorkbook.FullName
Select Case Application.Version * 1
Case Is <= 11
strConn = "Provider=Microsoft.Jet.Oledb.4.0;Extended Properties=excel 8.0;Data source=" & PathStr
Case Is >= 12
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & PathStr & ";Extended Properties=""Excel 12.0;HDR=YES"";"""
End Select
Conn.Open strConn
Set rst = Conn.Execute(sql)
If VBA.InStr(sql, "select") > 0 or VBA.InStr(sql, "Select") > 0 Then
With a.Parent
For i = 0 To rst.fields.Count - 1
.Cells(1, a.Column + i).EntireColumn.ClearContents
.Cells(1, a.Column + i) = rst.fields(i).Name
Next
End With
a.Offset(1).CopyFromRecordset rst
For i = 0 To rst.fields.Count - 1
a.Parent.Cells(1, a.Column + i).EntireColumn.AutoFit
Next
End If
Conn.Close
End Sub
Public Sub t()
'sql = "这里写你的查询语句"
dosql sql, [E1]
End Sub
1、记得运行代码前要保存工作簿
2、查询语句中,表名是[工作表名$]这样的格式
3、dosql sql, [E1]中的E1,就是要放查询结果的区域左上角那个单元格。

❼ 如何用SQL语句实现子分类中的不同项目自动添加数字编号

有个问题:你为什么强调“同一个ID下”?

如果跟是不是在“同一个ID下”没有半毛钱关系,你的问题可以简化成:查出来的每条记录里面SUB_NAME是存在的,SUB_ID是空着的,现在要把相同的SUB_NAME赋予相同的SUB_ID。


如果我的理解是正确的话,那么:

1、你另外建一张表,比如叫SUB_ID_NAME_COMP,然后一个字段是SUB_ID,另一个是SUB_NAME,然后你在这张表里面把对应关系整理好;

2、写下面这个脚本搞起:

select'updateAseta.sub1_id='||
(selectx.sub_id
fromSUB_ID_NAME_COMPx
wherex.sub_name=a.sub1_name)||',a.sub2_id='||
(selectx.sub_id
fromSUB_ID_NAME_COMPx
wherex.sub_name=a.sub2_name)||'wherea.sub1_name='||
A.SUB1_NAME||'anda.sub2_name='||A.sub2_name||';'
fromA;

其它,如果跟“同一个ID”有关系的话,上面的脚本在写的时候再把ID相关的信息带进去做好控制。

❽ 多表联合查询SQL语句

我来讲一下多表联合查询SQL语句:

  1. A、B两表

  2. A表:idd name2 image2 tag2
    1 长城 。 长城
    2 故宫 。 故宫
    3 天安门 。 天安门

  3. B表:id name image tag
    1 爱情1 。 长城
    2 天空 。 故宫
    3 23爱 。 长城

  4. 当tag2=tag,输出

  5. 查询结果:idd name2 image2 name image
    1 长城 。 爱情1、23爱 。、。

  6. 注:(A表记录1条,B表相关记录2条)以此展开循环

❾ VB如何连接SQL数据库,模块代码怎么改,如下:

.ConnectionString = "data source=MYSQL;initial catalog=SuperMarket;user id=sa;password=;database=SuperMarket;"
这句中的 password= 后要加上你的数据库的sa的密码。源程序中 sa 没密码是绝对不行的。
另外,你的数据库名 是否叫 SuperMarket?若不是则改过来。
一般说来,你应该另外建立一个用户,不要直接使用 sa 来访问数据库。

❿ access vba 一个sub多次使用sql

1)sql2 = "select last(成本单价) from RM_橱柜分厂材料成本2015 where 材料类别 = '" & Combo0.Value & "'"
data.Open sql1, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
这里也是sql1么?似乎应改为sql2吧
2)关了sql1重开sql2没什么不可以的,那是在释放记录集对象所占用的内存,对于在低性能电脑上运行程序是很有好处的。
3)如果是多个记录的记录集,可以使用do……loop循环之类的方法移动指针而不必重开记录集,但你上面这两个记录集都是汇总查询单记录的,用不到的。以do……loop循环为例:
with data
.movefirst
do until .eof
Text25 = .Fields(0)
.movenext
loop
end with