質問編集履歴

3

詳細の修正

2019/07/01 09:54

投稿

hiro33
hiro33

スコア15

test CHANGED
File without changes
test CHANGED
@@ -62,7 +62,7 @@
62
62
 
63
63
 
64
64
 
65
- データベースはMySQLを使用しています。
65
+ データベースはMariaDBのバージョン10.1.37を使用しています。
66
66
 
67
67
  上記のように異なっている列名、以前の値、最新の値を抜き出すことは可能なのでしょうか。
68
68
 

2

詳細を記入しました

2019/07/01 09:54

投稿

hiro33
hiro33

スコア15

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,6 @@
1
+ 以下のようなテーブルでレコードをitem_noを指定して、
2
+
1
- 以下ようなテブルでレコードを比較して異なっている部分を抽出したいです。
3
+ 最新もののレコドと最新の1つ前のレコードを比較して異なっている部分を抽出したいです。
2
4
 
3
5
 
4
6
 
@@ -10,31 +12,65 @@
10
12
 
11
13
  |1|1|1|2|2019-06-01|2019-06-15|
12
14
 
15
+ |1|1|3|2|2019-06-01|2019-07-01|
13
16
 
17
+ |2|2|2|2|2019-06-02|2019-06-10|
14
18
 
15
- 上記のテーブルから以下のような値を抜き出したいです。
19
+ |2|3|4|2|2019-06-02|2019-06-13|
16
20
 
17
21
 
18
22
 
19
- |異なっている列名|以前の値|最新の値|
20
23
 
21
- |:--|:--:|--:|
22
24
 
25
+ 項目の変更履歴を管理しているようなテーブルでして
26
+
23
- |koumoku3|1|2|
27
+ item_noにはアイテムの番号が、
28
+
29
+ koumoku1、koumoku2、koumoku3にはそれぞれの項目、
30
+
31
+ createdは作成日時、modifiedは更新日時を持っているようなイメージです。
32
+
33
+ 同じitem_noのものは作成日時が同じです。
34
+
35
+ なので更新日時の値で新しい順などを判別します。
24
36
 
25
37
 
26
38
 
27
- SQLで上記のような結果抜き出したいと考えています。
39
+ そして、以下のような抽出行いたいす。
40
+
41
+ |item_no|異なっている列名|最新から1つ前の値|最新の値|
42
+
43
+ |:--|:--|:--:|--:|
44
+
45
+ |1|koumoku2|1|3|
46
+
47
+
48
+
49
+ 複数違う場合は複数箇所、
50
+
51
+ それぞれ異なっている列名と1つ前の値、最新の値のセットを取り出したいです。
52
+
53
+
54
+
55
+ item_noが2の場合は
56
+
57
+ |item_no|異なっている列名1|最新から1つ前の値1|最新の値1|異なっている列名2|最新から1つ前の値2|最新の値2|
58
+
59
+ |:--|:--|:--:|--:|:--|:--:|--:|
60
+
61
+ |2|koumoku1|2|3|koumoku2|2|4|
62
+
63
+
64
+
65
+ データベースはMySQLを使用しています。
28
66
 
29
67
  上記のように異なっている列名、以前の値、最新の値を抜き出すことは可能なのでしょうか。
30
-
31
- データベースはMySQLを使用しています。
32
68
 
33
69
 
34
70
 
35
71
  もし、SQLだけで抽出できないなら、
36
72
 
37
- 1レコードのそれぞれの抽出結果をプログラムで順次比較をして差を見つけようと考えています。
73
+ レコードの最新と1つ前抽出結果をプログラムで順次項目の比較をして差を見つけようと考えています。
38
74
 
39
75
 
40
76
 

1

書式の改善

2019/07/01 09:42

投稿

hiro33
hiro33

スコア15

test CHANGED
File without changes
test CHANGED
@@ -32,7 +32,9 @@
32
32
 
33
33
 
34
34
 
35
+ もし、SQLだけで抽出できないなら、
36
+
35
- もし、SQLだけで抽出できないなら、1レコードのそれぞれの抽出結果をプログラムで順次比較をして差を見つけようと考えています。
37
+ 1レコードのそれぞれの抽出結果をプログラムで順次比較をして差を見つけようと考えています。
36
38
 
37
39
 
38
40