Mijn vraag
Ik heb een database met daarin een hele berg regels welke verplaatsingen zijn die door ons gestart zijn. Voor elke verplaatsing zijn er 2 regels. de eerste met het magazijn waar het vandaan komt (magazijn A om het makkelijk te maken) en de 2de regel is het magazijn waar het heen gaat (magazijn
.
Onderstaand zijn een 2-tal verplaatsingen waarbij het het eerste veld laat zien welk van de 2 regels als eerste komt voor het geval dat het niet geheel duidelijk is.
Wat ik nu graag zou willen hebben is dat deze op 1 regel staan zodat ik daar verdere bewerkingen mee kan doen: (datum wordt formatted op alleen de dag)
Het probleem wat ik heb is dat er geen unieke identifier is wat beide regels met elkaar "verbindt". Het enigste wat in de buurt komt is het idproduct_stock_historyid wat steeds 1 hoger is als de vorige regel. Voor zover bekend is dit nooit anders. Ik heb echter geen flauw idee hoe ik deze regels aan elkaar koppel met het id. Wel heb ik onderstaande queries geprobeerd echter ben ik bang dat hierdoor verschil kan optreden.
De kans is klein dat dit mis kan gaan maar aangezien het totaal niet netjes is ben ik eigenlijk op zoek naar een oplossing zodat dit altijd klopt. Weet iemand hoe ik deze regels het beste kan koppelen als het ID niet een goed idee is?
Ik heb een database met daarin een hele berg regels welke verplaatsingen zijn die door ons gestart zijn. Voor elke verplaatsing zijn er 2 regels. de eerste met het magazijn waar het vandaan komt (magazijn A om het makkelijk te maken) en de 2de regel is het magazijn waar het heen gaat (magazijn
Onderstaand zijn een 2-tal verplaatsingen waarbij het het eerste veld laat zien welk van de 2 regels als eerste komt voor het geval dat het niet geheel duidelijk is.
SQL:
1
2
3
4
5
6
7
| idproduct_stock_history idproduct idwarehouse iduser old_stock stock_change new_stock change_type reason changed_at sku 90137019 13833740 4863 6408 1 -1 0 moved Interco 2020-09-01 17:03:05 A0190378 90137020 13833740 4861 6408 0 1 1 moved Interco 2020-09-01 17:03:05 A0190378 90137035 13833740 4861 6408 1 -1 0 moved Interco 2020-09-01 17:03:16 A0190378 90137036 13833740 4862 6408 0 1 1 moved Interco 2020-09-01 17:03:16 A0190378 |
Wat ik nu graag zou willen hebben is dat deze op 1 regel staan zodat ik daar verdere bewerkingen mee kan doen: (datum wordt formatted op alleen de dag)
code:
1
2
| changed_at sku stock_change(oudste regel) stock_change(nieuwste regel) idwarehouse (oudste regel) idwarehouse (nieuwste regel) reason 2020-09-01 A0190378 -1 1 4863 4861 Interco |
Het probleem wat ik heb is dat er geen unieke identifier is wat beide regels met elkaar "verbindt". Het enigste wat in de buurt komt is het idproduct_stock_historyid wat steeds 1 hoger is als de vorige regel. Voor zover bekend is dit nooit anders. Ik heb echter geen flauw idee hoe ik deze regels aan elkaar koppel met het id. Wel heb ik onderstaande queries geprobeerd echter ben ik bang dat hierdoor verschil kan optreden.
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| SELECT DATE_FORMAT(picqer_historie.changed_at, "%d-%m-%Y") AS Date, picqer_historie.sku, picqer_products.`name`, naar.stock_change AS qty, IF(picqer_historie.idwarehouse = '4861', 'Magazijn B', IF(picqer_historie.idwarehouse = '4862', 'Magazijn C', IF(picqer_historie.idwarehouse = '4863', 'Magazijn A', 'Onbekend'))) AS van_idwarehouse, IF(naar.idwarehouse = '4861', 'Magazijn B', IF(naar.idwarehouse = '4862', 'Magazijn C', IF(naar.idwarehouse = '4863', 'Magazijn A', 'Onbekend'))) AS naar_idwarehouse, picqer_historie.reason FROM picqer_historie LEFT JOIN picqer_historie AS naar ON DATE_FORMAT(picqer_historie.changed_at, "%H:%i %d-%m-%Y") = DATE_FORMAT(naar.changed_at, "%H:%i %d-%m-%Y") AND picqer_historie.sku = naar.sku INNER JOIN picqer_products ON picqer_historie.sku = picqer_products.sku WHERE picqer_historie.stock_change < '0' AND picqer_historie.change_type LIKE '%moved%' AND naar.stock_change > '0' AND YEAR(picqer_historie.changed_at) = YEAR(CURRENT_DATE - INTERVAL 1 MONTH) AND MONTH(picqer_historie.changed_at) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH) |
De kans is klein dat dit mis kan gaan maar aangezien het totaal niet netjes is ben ik eigenlijk op zoek naar een oplossing zodat dit altijd klopt. Weet iemand hoe ik deze regels het beste kan koppelen als het ID niet een goed idee is?
-Te huur