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

sql多表头设计

发布时间: 2023-03-09 04:03:01

㈠ 想在K3里面做一个这类型的报表,sql语句该怎么写,图2的表头是两行,如何做到能否给一些参考的语句。

可以分两步做,先一个table查询出组头的信息,后一个table查询出明细信息,然后拼到DGV里,这样比较方便控制。当然,一个sql全部查出来,然后处理也行。不过感觉让代码处理逻辑更好一点。

㈡ 用SQL语言设计一个数据库,要求有5-8个表,添加20条数据,20个查询,5个触发器

create database EquipmentSystem
go
use EquipmentSystem
go

--保管人
create table KeepingPerson(
iPersonID int identity(1,1) primary key not null, --保管人编号
vPersonName varchar(30)) --保管人名字
insert KeepingPerson values('魏怀发')
insert KeepingPerson values('李伟')
insert KeepingPerson values('张国海')

go
--存放地点
create table StoreAddress(
iAddressID int identity(1,1) primary key not null, --地点编号
vAddress varchar(100)) --地点名称

insert StoreAddress values('会议室')
insert StoreAddress values('办公室')
insert StoreAddress values('仓库')

go
--编号规则
create table SerialRule(
iSerialID int identity(1,1) primary key not null, --编号
vRulePrefix varchar(10) not null, --编号前缀
vRuleInitValue int not null) --编号初始值

go
--使用部门
create table UserDepartment
(iDepartmentID int identity(1,1) primary key not null, --部门编号
vDepartmentName varchar(50))

go
--使用状态
create table UserState
(iStateID int identity(1,1) primary key not null, --状态编号
vStateName varchar(30)) --状态名称

go
--用户信息表
create table UserInfo
(iUserID int identity(1,1) primary key not null, --自动编号
vUserName varchar(50), --用户名
vPassword varchar(50)) --密码
insert UserInfo values('weihuaifa','46262719')
insert UserInfo values('zhangsan','56262719')
insert UserInfo values('wangwu','46s671s9')
insert UserInfo values('zhaoli','48911664')
insert UserInfo values('lisi','912766786')
insert UserInfo values('liqiang','asd62719')
insert UserInfo values('weihuaifa','46262719')

...懒得写了 1个数据库 6张表..有10几条数据..

㈢ 简述SQL数据库如何修改表头并设置主键

选择表 单击右键 --> 修改 --> 选择要设置为主键的字段单击右键 --> 设置主键 --> OK如果是要用sql语句来创建的话那么格式是这样的.,create table 表名( [列名] [数据类型] primary key)

㈣ SQL四个表中两个表头,两个表体的数据如何从A复制到B

CREATE TABLE inventory --物料表
(
invcode VARCHAR(22),
invname VARCHAR(22)
)
go
INSERT INTO inventory
SELECT '201097','苹果' UNION
SELECT '201098','葡萄' UNION
SELECT '201099','草莓' UNION
SELECT '201091','梨子'
go
CREATE TABLE A
(
ccode INT,--订单号
ccusname NVARCHAR(22),--客户信息
STATUS NVARCHAR(22) --状态
)
GO
INSERT INTO A
SELECT '1','XX技术有限公司1','审核' UNION
SELECT '2','XX技术有限公司2','弃审'
GO
CREATE TABLE A_s
(
ccode INT,--订单号
invcode NVARCHAR(22),--物料信息
iquantity DECIMAL,--数量
uf VARCHAR(22) --单位
)
GO
INSERT INTO A_s
SELECT '1','201099','22.00000','个' UNION
SELECT '1','201098','10.00000','个' UNION
SELECT '2','201097','30.00000','个' UNION
SELECT '2','201090','30.00000','个'
GO
CREATE TABLE B
(
ccode INT,--订单号
ccusname NVARCHAR(22),--客户信息
STATUS NVARCHAR(22) --状态
)
go
CREATE TABLE B_s
(
ccode INT,--订单号
invcode NVARCHAR(22),--物料信息
iquantity DECIMAL,--数量
uf VARCHAR(22)
)
GO

DECLARE @ccode INT
SET @ccode = '1'
--3.如果A表的表头的订单号在B表中不存在,直接插入表头,表体数据到B的表头,表体数据中。
IF NOT EXISTS (SELECT * FROM B WHERE ccode = @ccode)
BEGIN
INSERT INTO B SELECT * FROM A WHERE ccode = @ccode
INSERT INTO B_s SELECT * FROM A_s WHERE ccode = @ccode
END
--.如果在A表的表头的订单号在B中已经存在了,那么就要更新已经存在的表头和表体数据,
ELSE IF EXISTS (SELECT * FROM B WHERE ccode = @ccode)
BEGIN
UPDATE B SET ccusname=a.ccusname,STATUS=a.STATUS FROM A a WHERE a.ccode = @ccode AND B.ccode = @ccode
--另外如果是A表表体新增加的不在B表表体中的订单行要插入B表表体数据中
IF NOT EXISTS(SELECT * FROM B_s WHERE ccode = @ccode)
INSERT INTO B_s SELECT * FROM A_s WHERE ccode = @ccode
ELSE
UPDATE B_s SET invcode=a.invcode,iquantity=a.iquantity,uf=a.uf FROM A_s a WHERE a.ccode = @ccode AND B_s.ccode = @ccode
END

SELECT * FROM B
SELECT * FROM B_s
SELECT * FROM A
SELECT * FROM A_s
TRUNCATE TABLE B_s

㈤ SQL语句如何修改多个表头

select id,count(*) from 表 having count(*)>1 GROUP BY ID
把一样的字段放面ID.这个位置就可以了.上面这一句是ID 一样其它不一样的.如果你要ID不一样就把ID去掉
select 除ID外其它,count(*) from 表 having count(*)>1 GROUP BY 除ID外其它 s

㈥ 如何运用SQL进行双向表头报表查询

可以先将原始数据按照存款的区间和类别进行一次分组:SELECT TYPE, CASE WHEN BAL < 50000 THEN '5万元以下'WHEN BAL BETWEEN 50001 AND 100000 THEN '5-10万'WHEN BAL BETWEEN 100001 AND 200000 THEN '10-20万'WHEN BAL BETWEEN 200001 AND 300000 THEN '20-30万'WHEN BAL BETWEEN 300001 AND 400000 THEN '30-40万'WHEN BAL BETWEEN 400001 AND 500000 THEN '40-50万'WHEN BAL > 500000 THEN '50万以上'END AS BAL_RANGE,BAL, AGE, COUNT(*) COUNT_B FROM C_CUST_AGE WHERE DEPT_ID = ? AND TYPE = ? GROUP BY TYPE, AGE, BAL