回答編集履歴

7

推敲

2019/08/26 07:55

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  select t.*
16
16
 
17
- , (BASE_NUMBER -1 + case when ReceiptId = 0 then 0 else 1 end )as number
17
+ , (BASE_NUMBER -1 + case when ReceiptId = 1 then 0 else 1 end )as number
18
18
 
19
19
  from (
20
20
 
@@ -34,7 +34,7 @@
34
34
 
35
35
  , ROW_NUMBER() ORVER(PARTITION BY ID,RceiptId ORDER BY ID,RceiptId) * 2
36
36
 
37
- + case when ReceiptId = 0 then 0 else 1 end -1
37
+ + case when ReceiptId = 1 then 0 else 1 end -1
38
38
 
39
39
  AS BASE_NUMBER
40
40
 

6

訂正

2019/08/26 07:55

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  select t.*
16
16
 
17
- , (BASE_NUMBER + case when ReceiptId = 0 then 0 else 1 end )as number
17
+ , (BASE_NUMBER -1 + case when ReceiptId = 0 then 0 else 1 end )as number
18
18
 
19
19
  from (
20
20
 
@@ -34,7 +34,7 @@
34
34
 
35
35
  , ROW_NUMBER() ORVER(PARTITION BY ID,RceiptId ORDER BY ID,RceiptId) * 2
36
36
 
37
- + case when ReceiptId = 0 then 0 else 1 end
37
+ + case when ReceiptId = 0 then 0 else 1 end -1
38
38
 
39
39
  AS BASE_NUMBER
40
40
 

5

推敲

2019/08/26 07:54

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  select t.*
16
16
 
17
- case ReceiptId = 0 then BASE_NUMBER else BASE_NUMBER +1 end as number
17
+ , (BASE_NUMBER + case when ReceiptId = 0 then 0 else 1 end )as number
18
18
 
19
19
  from (
20
20
 
@@ -25,3 +25,19 @@
25
25
  ) t
26
26
 
27
27
  ```
28
+
29
+ ネストさせなくても良いかも
30
+
31
+ ```SQL
32
+
33
+ SELECT *
34
+
35
+ , ROW_NUMBER() ORVER(PARTITION BY ID,RceiptId ORDER BY ID,RceiptId) * 2
36
+
37
+ + case when ReceiptId = 0 then 0 else 1 end
38
+
39
+ AS BASE_NUMBER
40
+
41
+ FROM TBL_MatchingReceipt
42
+
43
+ ```

4

訂正

2019/08/26 07:51

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  from (
20
20
 
21
- SELECT *, ROW_NUMBER() ORVER(PARTITION BY ID,RceiptId ORDER BY ID) * 2 AS BASE_NUMBER
21
+ SELECT *, ROW_NUMBER() ORVER(PARTITION BY ID,RceiptId ORDER BY ID,RceiptId) * 2 AS BASE_NUMBER
22
22
 
23
23
  FROM TBL_MatchingReceipt
24
24
 

3

訂正

2019/08/26 07:48

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -22,16 +22,6 @@
22
22
 
23
23
  FROM TBL_MatchingReceipt
24
24
 
25
- where ReceiptId = 0
26
-
27
- union all
28
-
29
- SELECT *, ROW_NUMBER() ORVER(PARTITION BY ID,RceiptId ORDER BY ID) * 2 AS BASE_NUMBER
30
-
31
- FROM TBL_MatchingReceipt
32
-
33
- where ReceiptId = 1
34
-
35
25
  ) t
36
26
 
37
27
  ```

2

修正

2019/08/26 07:46

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -22,6 +22,16 @@
22
22
 
23
23
  FROM TBL_MatchingReceipt
24
24
 
25
+ where ReceiptId = 0
26
+
27
+ union all
28
+
29
+ SELECT *, ROW_NUMBER() ORVER(PARTITION BY ID,RceiptId ORDER BY ID) * 2 AS BASE_NUMBER
30
+
31
+ FROM TBL_MatchingReceipt
32
+
33
+ where ReceiptId = 1
34
+
25
35
  ) t
26
36
 
27
37
  ```

1

追記

2019/08/26 07:12

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -3,3 +3,25 @@
3
3
  偶数連番:連番*2
4
4
 
5
5
  奇数連番:連番*2-1
6
+
7
+
8
+
9
+ 追記
10
+
11
+ --
12
+
13
+ ```SQL
14
+
15
+ select t.*
16
+
17
+ case ReceiptId = 0 then BASE_NUMBER else BASE_NUMBER +1 end as number
18
+
19
+ from (
20
+
21
+ SELECT *, ROW_NUMBER() ORVER(PARTITION BY ID,RceiptId ORDER BY ID) * 2 AS BASE_NUMBER
22
+
23
+ FROM TBL_MatchingReceipt
24
+
25
+ ) t
26
+
27
+ ```