[MYSQL] - Json Table Problemi
-
merhaba muritler;
--Odeme Sutnu İçeriği; [ { "OdemeTuru": "Nakit", "TutarTL": "150", "ParaUstu": "0" }, { "OdemeTuru": "KrediKartı", "TutarTL": "785.00", "Banka": "7", "Taksit": "0", "Komisyon": "21.98", "SlipNo": "4584851215452" }, { "OdemeTuru": "NakitDoviz", "TutarTL": 649, "TutarDoviz": "100.00", "DovizTur": "USD", "AlinanDoviz": "180", "ParaUstu": "526.40", "ParaUstuDoviz": "80.00" } ]
tablomda usttekı sekılde bır sutunum var
asagıdakı kodla TutarTL verilerini toplayıp gostermek ıstıyorum
SELECT sum(Tutar), (select Sum(result) from JSON_TABLE(Odeme,"$[*]" COLUMNS(result float PATH '$.TutarTL')) as JT) as GG FROM tb_satis Satis group by Odeme
yukarıdakı kodda asagıdakı hatayı verıyor
SELECT sum(Tutar), (select Sum(result) from JSON_TABLE(Odeme,"$[*]" COLUMNS(result float PATH '$.TutarTL')) as JT) as TT FROM tb_satis Satis group by Odeme > 1210 - Incorrect arguments to JSON_TABLE > Time: 0,001s
fakat
bu şekılde bır kullanım sagladıgımda kod calısıyor
SELECT sum(Tutar), (select Sum(result) from JSON_TABLE('[ { "OdemeTuru": "Nakit", "TutarTL": "150", "ParaUstu": "0" }, { "OdemeTuru": "KrediKartı", "TutarTL": "785.00", "Banka": "7", "Taksit": "0", "Komisyon": "21.98", "SlipNo": "4584851215452" }, { "OdemeTuru": "NakitDoviz", "TutarTL": 649, "TutarDoviz": "100.00", "DovizTur": "USD", "AlinanDoviz": "180", "ParaUstu": "526.40", "ParaUstuDoviz": "80.00" } ]',"$[*]" COLUMNS(result float PATH '$.TutarTL')) as JT) as GG FROM tb_satis Satis group by Odeme
niçin boyle bir problem yasıyorum
-
JSON alanda hesaplama kısmını db fiddle üzerinde MySql 8 sürümü ile yaptım hocam.
https://www.db-fiddle.com/f/uMJpmhfHDQzEez9a3bPaZ4/0
SELECT sum(result) as result FROM mytable, JSON_TABLE( `data`, '$[*]' COLUMNS( NESTED PATH '$.TutarTL' COLUMNS (result DECIMAL PATH '$') ) ) AS jt;
-
coder2 bunu yazdı
JSON alanda hesaplama kısmını db fiddle üzerinde MySql 8 sürümü ile yaptım hocam.
https://www.db-fiddle.com/f/uMJpmhfHDQzEez9a3bPaZ4/0
SELECT sum(result) as result FROM mytable, JSON_TABLE( `data`, '$[*]' COLUMNS( NESTED PATH '$.TutarTL' COLUMNS (result DECIMAL PATH '$') ) ) AS jt;
hocam bunu biliyorum
bu sekılde kullanınca cıkan satır sayısı kadar toplama yapıyor
ben dıger sekılde kullanıp her satıra aynı verıyı yazdırmaya calısıyorum
-
evet çözüm bulamadıgım ıcın odemeler sutununu ayrı bır tablo olarak degıstırdım