當前位置:首頁 » 編程語言 » 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