我在项目表中有这样的数据
Tabel siswa Tabel jurusan Tabel Penjurusan
id_siswa nama nilai tes id_jurusan id_jurusan id_fakultas nama id id_siswa id_jurusan option ket
1 A 6 01 01 04 Sipil 1 1 01 1 lULUS
2 B 7 02 02 04 Mesin 2 1 02 2 TIDAK LULUS
3 C 8 01 03 09 Sastra 3 1 03 3 TIDAK LULUS
4 D 6 03 4 2 01 1 LULUS
5 E 7 02 5 2 02 2 TIDAK LULUS
6 2 03 3 TIDAK LULUS我想用这样的格式制作欧托马提斯号
year_kode fakultas_kode jurusan_nomor(yyffjj0000)
游牧民为0001-9999之间的编号,按值max "Nilai tes“进行排序。
我的疑问是这样的
CREATE PROCEDURE kd_mahasiswa (kode int(10), tgl_daftar date, nama_jurusan varchar(225), nama_fakultas varchar(225))
BEGIN
DECLARE kunci varchar(20);
DECLARE urut varchar(20);
SET kunci = CONVERT(varchar,DATEPART(YEAR,@tgl_daftar)) '+'
UPPER(SUBSTRING(LTRIM(@nama_jurusan)) '+'
UPPER(SUBSTRING(LTRIM(@nama_fakultas));
SELECT urut = ISNULL(MAX(RIGHT(kode,4)),0) + 1 FROM siswa, penjurusan, jurusan, fakultas WHERE penjurusan.kode = siswa.kode
AND jurusan.id_jurusan = penjurusan.id_penjurusan AND fakultas.id_fakultas = jurusan.id_fakultas order by nilai_tes,uang_gedung DESC
SET urut = RIGHT('000' + @urut,4);
SET kunci = CONCAT(kunci,urut);
INSERT INTO siswa VALUES(kunci,@tgl_daftar,@nama_jurusan, @nama_fakultas)
END我尝试了这个查询,但是过程错误。
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@kunci varchar(20)
DECLARE @urut varchar(20)
SET @kunci = CONVERT(varch' at line 4 我用了Mysql..。
请帮我解决这个问题?
谢谢。
发布于 2014-09-19 03:55:17
您不能DECLARE用户定义的变量,用户定义变量的名称以@字符开始.
过程变量名不以@字符开头。
如果要使用用户定义的变量,请删除DECLARE语句。如果要使用过程变量,请从变量引用中删除@字符。
注意,过程中的语句需要用分号结束。+运算符是数字加法,而不是字符串级联。
例如:
DECLARE kunci VARCHAR(20) ;
SET urut = RIGHT(CONCAT('000',urut),4);
SET kunci = CONCAT(kunci,urut);过程变量、过程参数和列名之间可能存在名称冲突。MySQL通过赋予过程变量优先于过程参数和列来解决这些冲突。
如果要将表达式的值赋值给SELECT语句中的用户定义变量,则需要使用:=赋值操作符.
SELECT @urut := expr
^^要将SELECT的结果赋值给过程变量,可以使用SELECT语句的SELECT ... INTO表单:
SELECT expr INTO urut FROM ...
^^^^(对于SELECT... INTO,如果查询返回多行,MySQL将抛出一个错误;您可以通过在SELECT语句末尾添加LIMIT 1子句来确保查询最多返回一行。
https://stackoverflow.com/questions/25925873
复制相似问题