'I want to Itrate JSON and convert into rows from postgresql
Basically I want to itrate JSON till its length from table but rest of values of remains same till current JSON ends. My Table format is like this
| id | line | txndate | metadata | docnumber |
|---|---|---|---|---|
| 363 | [{"Id": "0", "Amount": 135000.0, "DetailType": "JournalEntryLineDetail", "Description": "Paid Office Rent Of Office", "JournalEntryLineDetail": {"AccountRef": {"name": "Rent or lease payments", "value": "57"}, "PostingType": "Debit"}}, {"Id": "1", "Amount": 135000.0, "DetailType": "JournalEntryLineDetail", "Description": "Paid Office Rent Of Office", "JournalEntryLineDetail": {"AccountRef": {"name": "Cash and cash equivalents:Bank", "value": "83"}, "PostingType": "Credit"}}] | 2021-08-16 00:00:00.000000 +00:00 | {"CreateTime": "2021-08-20T05:39:38.000000Z", "LastUpdatedTime": "2021-08-20T05:39:38.000000Z"} | 332 |
| 610 | [{"Id": "0", "Amount": 4138088.25, "DetailType": "JournalEntryLineDetail", "Description": "Deposit in Bank", "JournalEntryLineDetail": {"AccountRef": {"name": "Cash and cash equivalents:Bank", "value": "83"}, "PostingType": "Debit"}}, {"Id": "1", "Amount": 4138088.25, "DetailType": "JournalEntryLineDetail", "Description": "Deposit in Bank", "JournalEntryLineDetail": {"AccountRef": {"name": "Share capital", "value": "8"}, "PostingType": "Credit"}}, {"Id": "2", "DetailType": "DescriptionOnly", "Description": "Deposit in Bank"}] | 2021-10-11 00:00:00.000000 +00:00 | {"CreateTime": "2021-10-13T10:44:09.000000Z", "LastUpdatedTime": "2021-10-13T10:44:09.000000Z"} | 560 |
| 381 | [{"Id": "0", "Amount": 30000.0, "DetailType": "JournalEntryLineDetail", "Description": "Paid to Punkish", "JournalEntryLineDetail": {"AccountRef": {"name": "Advance Against Salary", "value": "103"}, "PostingType": "Debit"}}, {"Id": "1", "Amount": 30000.0, "DetailType": "JournalEntryLineDetail", "Description": "Paid to Punkish", "JournalEntryLineDetail": {"AccountRef": {"name": "Cash and cash equivalents:Bank", "value": "83"}, "PostingType": "Credit"}}] | 2021-07-01 00:00:00.000000 +00:00 | {"CreateTime": "2021-08-23T05:31:42.000000Z", "LastUpdatedTime": "2021-08-23T05:47:03.000000Z"} | 521 |
But I want to extract information like following table
| id | line_id | Amount | Description | name | value | posting_type | txndate | CreatedTime | LastUpdatedTime |
|---|---|---|---|---|---|---|---|---|---|
| 363 | 0 | 13500 | Paid Office Rent Of Office | Rent or lease payments | 57 | Debit | 2021-08-16 00:00:00.000000 +00:00 | 2021-08-20T05:39:38.000000Z | 2021-08-20T05:39:38.000000Z |
| 363 | 1 | 13500 | Paid Office Rent Of Office | Cash and cash equivalents:Bank | 83 | Cebit | 2021-08-16 00:00:00.000000 +00:00 | 2021-08-20T05:39:38.000000Z | 2021-08-20T05:39:38.000000Z |
| 610 | 0 | 4138088.25 | Deposit in Bank | Cash and cash equivalents:Bank | 83 | Debit | 2021-10-11 00:00:00.000000 +00:00 | 2021-10-13T10:44:09.000000Z | 2021-10-13T10:44:09.000000Z |
| 610 | 1 | 4138088.25 | .......... | .. | ... | ... | 2021-10-11 00:00:00.000000 +00:00 | 2021-10-13T10:44:09.000000Z | 2021-10-13T10:44:09.000000Z |
| 610 | 2 | 4138088.25 | .......... | .. | ... | ... | 2021-10-11 00:00:00.000000 +00:00 | 2021-10-13T10:44:09.000000Z | 2021-10-13T10:44:09.000000Z |
| 610 | 3 | 4138088.25 | .......... | .. | ... | ... | 2021-10-11 00:00:00.000000 +00:00 | 2021-10-13T10:44:09.000000Z | 2021-10-13T10:44:09.000000Z |
I want to convert JSON column enteries into rows but want preserve id, txndate, CreatedTime, and LastUpdatedTime same till the length of JSON column which is line in my case.
Please guide me with solution if possible.
Note: I am using Postgresql and datatype of line column is jsonb
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
