-
我觉得你领导可能是让你跟下面的表做内连字段匹配,而不用知道不存在的那张表有什么,因为匹配字段都告诉你了
SELECT
m.处方单号 AS tpr_seq_sn,
m.门店编号 AS tpr_org_no,
m.患者姓名 AS tpr_name,
m.性别 AS tpr_sex,
m.电话 AS tpr_phone,
m.年龄 AS tpr_age,
m.营业员编号 AS yyy_code,
d.商品名 AS spmch,
d.规格 AS shpgg,
d.单位 AS dw,
d.数量 AS sl,
d.生产厂家 AS shengccj
FROM 处方表 m
JOIN 详情表 d ON m.处方单号 = d.处方单号
SELECT
m.处方单号 AS tpr_seq_sn,
m.门店编号 AS tpr_org_no,
m.创建时间 AS create_time
FROM 处方表 m
JOIN pos_mast_hjlshh hj ON m.pos_mast_hjlshh = hj.lshh
WHERE rownum <= 50
ORDER BY m.创建时间 DESC
SELECT
d.处方单号 AS tpr_seq_sn,
d.商品名 AS spmch,
d.规格 AS shpgg,
d.单位 AS dw,
d.数量 AS sl,
d.生产厂家 AS shengccj
FROM 详情表 d
JOIN spkfk ON d.spid = spkfk.spid
WHERE d.处方单号 = #{tpr_seq_sn}
这就是sql语句。会不会是让你写成hql?
哥们你有中文的处方表名称嘛?你们领导的意思应该是把逻辑给你写出来,让你替换表面,然后测试完成后更新把
领导的意思是不应该把这个写成sql,不是写成sql,我觉得应该是这样
是sql语句没错,你sql的字段都是中文的?as前后替换一下不就可以了
字段名和表名替换吧,目前给你的只是逻辑上的,在数据库中是运行不了的
这个别名是不是就是你表内字段啊 把位置互换一下呢
替换中文名称 变成 实际的表名
来这里问还不如直接去问你领导要处方表,不可能没有的,实习的时候一定要多问多沟通,不要不好意思,需求要明确,不要去猜。
给你的应该是一个语法示例,让你根据表的关系进行具体修改吧
意思应该是用那三个表的字段和关联关系,重写查询sql,不查处方表
图一是逻辑,图二是表关联关系。
根据图二表名,根据列名推测一下图一中对应的表,写一下查询的SQL就好了。
这个是已经查出那三张表的明细,既然现在有三个表的关联条件。
领导想让你把三张表的数据关联起来,汇总到一张表里
你们领导是给了你伪代码,你要把伪代码修改成实际的SQL语句,那些中文字段,全部改成你实际的数据表字段。
SELECT DISTINCT
处方单号 AS tpr_seq_sn,
门店编号 AS tpr_org_no,
创建时间 AS create_time
FROM 处方表
WHERE 条件 -- 替换为你的条件
AND rownum <= 50
ORDER BY CREATETIME DESC
主表:
SELECT
处方单号 AS tpr_seq_sn,
门店编号 AS tpr_org_no,
患者姓名 AS tpr_name,
性别 AS tpr_sex,
电话 AS tpr_phone,
年龄 AS tpr_age,
营业员编号 AS yyy_code
FROM 处方表
WHERE 处方单号 = ? -- 用你的参数替换?
详情表:
SELECT DISTINCT
处方单号 AS tpr_seq_sn,
商品名 AS spmch,
规格 AS shpgg,
单位 AS dw,
数量 AS sl,
生产厂家 AS shengccj
FROM 处方表
WHERE 处方单号 = ? -- 用你的参数替换?
中文表头转换成英文表头,建表。
那个长截图 前半段是两张表的字段 关联起来就是所谓的处方表吧 然后下面三个是查询处方表的语句 你就直接create table 建上面两张表 处方表就是
creat view 处方表 as (
select * from pos_mast_hj
left join pos_mxls_hj on pos_mast_hj.lshh = pos_mxls_hj.lshh
left join spkfk on posmxls hj.spid = spkfk.spid )
下面三段语句你都用create view 建相关的视图就行
是没有处方表是吗。如果没有的话,那你领导的意思应该是根据前面三个表,查询出来的数据作为处方表中的数据。关联关系已经给你了,替换下查询条件里面的语句。如果不是很确定,就问清楚下,没关系的。
你这个就是sql