質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

1回答

1891閲覧

MySQLでCONCATを使用し数字の単位として円を追加すると表示がおかしくなる

退会済みユーザー

退会済みユーザー

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2020/05/10 04:21

前提・実現したいこと

MySQLを使用しています。

EMPLOYEEテーブル
EMPNO EMPNAME GENDERCD
00001 AAAAAAA   2
00002 BBBBBBB   1
00003 CCCCCCC   2
00004 DDDDDDD   1
00005 EEEEEEE    2

ASSIGNMENTテーブル
EMPNO SALARY
00001 100000
00002 200000
00003 300000
00004 400000
00005 500000

EMPLOYEEテーブルとASSIGNMENTテーブルから男性(GENDERCD=1)の合計SALARYを検索します。CONCATを使って、数字の単位に「円」を追加したいのですが、CONCATを使用すると変な表示になってしまいます。

発生している問題・エラーメッセージ

+----------------------------+ | 男性給与合計               | +----------------------------+ | 0x35363830303030897E       | +----------------------------+

該当のソースコード

SELECT CONCAT(SUM(SALARY), '円') AS 男性給与合計 FROM EMPLOYEE JOIN ASSIGNMENT USING(EMPNO) WHERE GENDERCD = 1;  

試したこと

CONCATを使わずに数字だけで表示しようとするとうまくいくのですが…

SELECT SUM(SALARY) AS 男性給与合計 FROM EMPLOYE JOIN ASSIGNMENT USING(EMPNO) WHERE GENDERCD = 1;

+--------------+
| 男性給与合計 |
+--------------+
|       600000 |
+--------------+

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2020/05/10 04:36

文字コードの問題だとは思いますが、そもそも表示に関しては SQL ではなくアプリ側でやるのが好ましいと思います。
退会済みユーザー

退会済みユーザー

2020/05/10 05:59

MySQLの課題なので、なんとかMySQLの方で表示したいです…
guest

回答1

0

ベストアンサー

まずは日本語ではなく英数字でテストしてください
キャラクターコードの問題かどうか切り分けられます
上記でうまく行くならcastやconvertを試してください

そもそも
select '円'
で正しく表示されるかにもよります

投稿2020/05/10 06:03

yambejp

総合スコア116726

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/05/10 06:15

英数字でテストしてみましたが、正しく表示されませんでした。 select '円' は正しく表示されました。
yambejp

2020/05/10 06:42

そうであればsumとconcatの併用の問題だと考えられるので sumを先にしてそれをサブクエリーにconcatすればいいでしょう
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問