求SQL语句

DuBin11 2008-12-30 11:06:10
1、 某社区需建立本社区常住人口健康档案管理系统,涉及两张表。
基本信息表 Resident_Health
Resident_Health
Res_id 编号 NUMBER(9)
CERT_ID 身份证号码 VARCHAR2(25)
NAME 姓名 VARCHAR2(60)
HEALTH_INFO 健康状况 VARCHAR2(1000)
FAMILY_INCOME 家庭年收入 NUMBER(9,2)
社区居民的身份证信息表CERT:
CERT
CERT_ID 身份证号码 VARCHAR2(25)
FAMILY_ADDR 家庭住址 VARCHAR2(1000)
1) 给出RESIDENT_ HEALTH的建表语句;
CREATE TABLE RESIDENT_HEALTH
(Res_id NUMBER(9),
CERT_ID VARCHAR2(25),
NAME VARCHAR2(60),
HEALTH_INFO VARCHAR2(1000),
FAMILY_INCOME NUMBER(9,2));
2)请根据RESIDENT_HEALTH表的RES_ID字段给RESIDENT_HEALTH表建立一个索引IDX_RES,根据CERT_ID字段建立一个外键FK_RES,引用到CERT表的CERT_ID字段;
3)请参照以上两张表,统计出1956年出生的居民的姓名、家庭住址、健康状况和家庭年收入。

主要是第2)和第3)问,
...全文
78 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2008-12-30
  • 打赏
  • 举报
回复
oracle用substr(a.CERT_ID,7,4)
中国风 2008-12-30
  • 打赏
  • 举报
回复
     
CREATE TABLE RESIDENT_HEALTH
(Res_id NUMBER(9) not null Primary key,
CERT_ID VARCHAR2(25) not null foreign key references [CERT](CERT_ID),
NAME VARCHAR2(60),
HEALTH_INFO VARCHAR2(1000),
FAMILY_INCOME NUMBER(9,2));
create index IX_RESIDENT_HEALTH on RESIDENT_HEALTH(CERT_ID)

select
*--指定顯示列
from RESIDENT_HEALTH a
inner join [CERT] b on a.CERT_ID=b.CERT_ID
where substring(a.CERT_ID,7,4)=1956
dawugui 2008-12-30
  • 打赏
  • 举报
回复
注:你的表结构是oracle的,不知道上面在sql server中的语句是否适合oracle.
dawugui 2008-12-30
  • 打赏
  • 举报
回复
根据CERT_ID字段建立一个外键FK_RES,引用到CERT表的CERT_ID字段; 

CREATE TABLE CERT
(
CERT_ID VARCHAR(25) FOREIGN KEY REFERENCES Resident_Health(CERT_ID),
FAMILY_ADDR VARCHAR(100)
)
  • 打赏
  • 举报
回复
3、参照乌龟的
  • 打赏
  • 举报
回复
2、create index IDX_RES on RESIDENT_HEALTH(RES_ID)

alter table RESIDENT_HEALTH
add constraint FK_RES foreign key CERT_ID on CERT(CERT_ID )
dawugui 2008-12-30
  • 打赏
  • 举报
回复
2)请根据RESIDENT_HEALTH表的RES_ID字段给RESIDENT_HEALTH表建立一个索引IDX_RES

CREATE INDEX IDX_RES ON Resident_Health (Res_id)
dawugui 2008-12-30
  • 打赏
  • 举报
回复
3)请参照以上两张表,统计出1956年出生的居民的姓名、家庭住址、健康状况和家庭年收入。

select a.NAME , b.FAMILY_ADDR , a.HEALTH_INFO , a.FAMILY_INCOME
from Resident_Health a, CERT b
where a.CERT_ID = b.CERT_ID and ((len(a.CERT_ID) = 18 and substring(a.CERT_ID,7,4) = '1956') or (len(a.CERT_ID) = 15 and substring(a.CERT_ID,7,2) = '56'))

22,298

社区成员

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

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