MySQLで2列の統合 -- mysql フィールド 関連 問題

Merging two column In MYSQL












1
vote

問題

日本語

日付FCALVDATEとLCALVDATEが異なる場合は、2列のFCALVDATEとLCALVDATEをLastCalVDateにマージしようとしています。次の行のLastCalVDateの新しい日付を追加します。

次のMySQLクエリ

を使用してみました <事前> <コード> SELECT `paid00_rpt_animreg`.`animalid` AS `animalid`, `paid00_rpt_animreg`.`fcalvdate`, `paid00_rpt_animreg`.`lcalvdate`, (CASE WHEN (`paid00_rpt_animreg`.`fcalvdate`IS NOT NULL) THEN `paid00_rpt_animreg`.`fcalvdate` WHEN (`paid00_rpt_animreg`.`lcalvdate` IS NOT NULL) THEN `paid00_rpt_animreg`.`lcalvdate` END) AS `LastCalvDate` FROM (`paid00_rpt_animreg` JOIN `reg04_lkpsex`) WHERE (`paid00_rpt_animreg`.`sex` = 2)

マイサンプル出力このクエリのデータデータは、この

のようです <事前> <コード> # animalid, fcalvdate, lcalvdate, LastCalvDate '070e0d2f-2403-4f97-b623-22cb0488745c', NULL, '2016-07-14', '2016-07-14' '070e0d2f-2403-4f97-b623-22cb0488745c', NULL, '2016-07-14', '2016-07-14' '070e0d2f-2403-4f97-b623-22cb0488745c', NULL, '2016-07-14', '2016-07-14' '070e0d2f-2403-4f97-b623-22cb0488745c', NULL, '2016-07-14', '2016-07-14' '070fdbb1-f39b-4f42-804c-4d7694f126d0', NULL, NULL, NULL '08548c78-48b4-4e5b-81e7-d71caa03564c', NULL, '2017-02-19', '2017-02-19' '08548c78-48b4-4e5b-81e7-d71caa03564c', NULL, '2017-02-19', '2017-02-19' '08548c78-48b4-4e5b-81e7-d71caa03564c', NULL, '2017-02-19', '2017-02-19' '08548c78-48b4-4e5b-81e7-d71caa03564c', NULL, '2017-02-19', '2017-02-19'

私の予想出力は

です <事前> <コード> # animalid, fcalvdate, lcalvdate, LastCalvDate '070e0d2f-2403-4f97-b623-22cb0488745c', 2016-07-14, '2016-07-14', '2016-07-14' '070e0d2f-2403-4f97-b623-22cb0488745c', 2016-07-14, '2016-07-14', '2016-07-14' '070e0d2f-2403-4f97-b623-22cb0488745c', 2016-07-14, '2016-07-14', '2016-07-14' '070e0d2f-2403-4f97-b623-22cb0488745c', 2016-07-14, '2016-07-15', '2017-07-14' '070e0d2f-2403-4f97-b623-22cb0488745c', 2017-07-14, '2016-07-15', '2017-07-15' '070fdbb1-f39b-4f42-804c-4d7694f126d0', NULL, NULL, NULL '08548c78-48b4-4e5b-81e7-d71caa03564c', 2017-02-19, '2017-02-19', '2017-02-19' '08548c78-48b4-4e5b-81e7-d71caa03564c', 2017-02-19, '2017-02-19', '2017-02-19' '08548c78-48b4-4e5b-81e7-d71caa03564c', '2017-02-19', '2017-02-19', '2017-02-19' '08548c78-48b4-4e5b-81e7-d71caa03564c', '2017-02-19', '2017-02-19', '2017-02-19'
英語

I am trying to merging two column fcalvdate and lcalvdate into LastCalvDate , if the date fcalvdate and lcalvdate is different i would like to add the new date on LastCalvDate in the next row.

I have tried using the following MySql query

SELECT           `paid00_rpt_animreg`.`animalid` AS `animalid`,         `paid00_rpt_animreg`.`fcalvdate`,         `paid00_rpt_animreg`.`lcalvdate`,         (CASE             WHEN (`paid00_rpt_animreg`.`fcalvdate`IS NOT NULL) THEN `paid00_rpt_animreg`.`fcalvdate`             WHEN (`paid00_rpt_animreg`.`lcalvdate` IS NOT NULL) THEN `paid00_rpt_animreg`.`lcalvdate`         END) AS `LastCalvDate`     FROM         (`paid00_rpt_animreg`         JOIN `reg04_lkpsex`)     WHERE         (`paid00_rpt_animreg`.`sex` = 2)  

My sample output data for this query looks like this

# animalid, fcalvdate, lcalvdate, LastCalvDate '070e0d2f-2403-4f97-b623-22cb0488745c', NULL, '2016-07-14', '2016-07-14' '070e0d2f-2403-4f97-b623-22cb0488745c', NULL, '2016-07-14', '2016-07-14' '070e0d2f-2403-4f97-b623-22cb0488745c', NULL, '2016-07-14', '2016-07-14' '070e0d2f-2403-4f97-b623-22cb0488745c', NULL, '2016-07-14', '2016-07-14' '070fdbb1-f39b-4f42-804c-4d7694f126d0', NULL, NULL, NULL '08548c78-48b4-4e5b-81e7-d71caa03564c', NULL, '2017-02-19', '2017-02-19' '08548c78-48b4-4e5b-81e7-d71caa03564c', NULL, '2017-02-19', '2017-02-19' '08548c78-48b4-4e5b-81e7-d71caa03564c', NULL, '2017-02-19', '2017-02-19' '08548c78-48b4-4e5b-81e7-d71caa03564c', NULL, '2017-02-19', '2017-02-19' 

My expected output is

# animalid, fcalvdate, lcalvdate, LastCalvDate '070e0d2f-2403-4f97-b623-22cb0488745c', 2016-07-14, '2016-07-14', '2016-07-14' '070e0d2f-2403-4f97-b623-22cb0488745c', 2016-07-14, '2016-07-14', '2016-07-14' '070e0d2f-2403-4f97-b623-22cb0488745c', 2016-07-14, '2016-07-14', '2016-07-14' '070e0d2f-2403-4f97-b623-22cb0488745c', 2016-07-14, '2016-07-15', '2017-07-14' '070e0d2f-2403-4f97-b623-22cb0488745c', 2017-07-14, '2016-07-15', '2017-07-15' '070fdbb1-f39b-4f42-804c-4d7694f126d0', NULL, NULL, NULL '08548c78-48b4-4e5b-81e7-d71caa03564c', 2017-02-19, '2017-02-19', '2017-02-19' '08548c78-48b4-4e5b-81e7-d71caa03564c', 2017-02-19, '2017-02-19', '2017-02-19' '08548c78-48b4-4e5b-81e7-d71caa03564c', '2017-02-19', '2017-02-19', '2017-02-19' '08548c78-48b4-4e5b-81e7-d71caa03564c', '2017-02-19', '2017-02-19', '2017-02-19' 
</div
  
         
         

回答リスト

1
 
vote
vote
ベストアンサー
 

<コード> setContentView2 < /コード> :

<事前> <コード> setContentView3
 

You can simply use Coalesce():

SELECT    `paid00_rpt_animreg`.`animalid` AS `animalid`,   COALESCE(`paid00_rpt_animreg`.`fcalvdate`,             `paid00_rpt_animreg`.`lcalvdate`) AS `fcalvdate`,    `paid00_rpt_animreg`.`lcalvdate`,   COALESCE(`paid00_rpt_animreg`.`fcalvdate`,             `paid00_rpt_animreg`.`lcalvdate`) AS `LastCalvDate` FROM    (`paid00_rpt_animreg`    JOIN `reg04_lkpsex`) WHERE    (`paid00_rpt_animreg`.`sex` = 2)  
</div
 
 
       
       

関連する質問

317  パフォーマンスが低下する前にMySQLデータベースがどのくらいのBIGを取得するか  ( How big can a mysql database get before performance starts to degrade ) 
MySQLデータベースがパフォーマンスを低下させ始めるのはどのようなポイントで? 物理データベースのサイズが重要ですか? レコード数の問題は? は、任意の性能劣化線形または指数関数的ですか? 私は大規模なデータベースであると信じているものを持っています。...

2  表1から表2まで2列の接合  ( Joining 2 columns from table1 to table 2 ) 
表2の2列に表1列を参照しますか? 私は50の正確な行でテーブル ' 'を作成しました '結婚式'テーブルに関連しようとしている(WeddingState、ContactState) これは私が作成した声明ですが、トップ WeddingState を正しく結...

39  PythonとMySQL  ( Python and mysql ) 
PostgreSQLを操作するようにPythonを取得することができますが、MySQLで動作することはできません。主な問題は、私がDjangoやPysqlなどのものをインストールする機能を持っていない共有ホスティングアカウントでは、私のコンピュータにインスト...

177  MySQLトリガーにエラーをスローします  ( Throw an error in a mysql trigger ) 
<コード> M_PI3 <コード> M_PI4 がある場合は、そのテーブルの更新を妨げるエラーをスローできますか? ...

0  Schema_miribations上の固有の制約のためにRails Unitテストが失敗する  ( Rails unit tests fail because of unique constraint on schema migrations ) 
rake test:units を実行しようとしています。 <事前> <コード> Mysql::Error: Duplicate entry '2147483647' for key 1: INSERT INTO `ts_schema_migrations...

88  SQL Server 2005からMySQLにデータをエクスポートする方法[閉じた]  ( How to export data from sql server 2005 to mysql ) 
閉じたこの質問はオフトピックです。現在答えを受け付けていません。 この質問を改善したいですか?質問を更新するスタックオーバーフロ...

1  MySQL:v4からv5へのクエリの移行  ( Mysql migrating queries from v4 to v5 ) 
MySQL 4からMySQLのプロジェクトを移行するとき、クエリが互換性があることを確認するために私が対処する必要がある主なことは何ですか? 一般的なものは大丈夫ですが、私はMySQL 4のクエリに暗黙のうちに機能していることをMySQL 5で明示的に定義す...

87  SQL Server 2005 MySQLの実装は?  ( Sql server 2005 implementation of mysql replace into ) 
MySQLには、これが非常に便利な REPLACE INTO sqlコマンドを持っています。 これはSQL Server 2005で簡単にエミュレートできますか? 新しいトランザクションの開始、<コード> Select() 、次に<コード> UPDATE...

191  MySQLのバイナリデータ[閉じた]  ( Binary data in mysql ) 
閉鎖。この質問はもっと焦点を絞ったにする必要があります。現在答えを受け付けていません。 この質問を改善したいですか?この記事の編...

136  DBスキーマの変更を追跡するためのメカニズム[閉]  ( Mechanisms for tracking db schema changes ) 
現在立つにつれて、この質問は私たちのQ&AMPにとって良いフィットではありません。フォーマット。私たちは事実、参考文献、または専門知識によって支持されることを期待していますが、この質問は...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有