folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder [MYSQL] - Json Table Problemi



[MYSQL] - Json Table Problemi

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    lazz
    lazz's avatar
    Kayıt Tarihi: 15/Ekim/2007
    Erkek

    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

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    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;

     


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    lazz
    lazz's avatar
    Kayıt Tarihi: 15/Ekim/2007
    Erkek
    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

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    lazz
    lazz's avatar
    Kayıt Tarihi: 15/Ekim/2007
    Erkek

    evet çözüm bulamadıgım ıcın odemeler  sutununu ayrı bır tablo olarak degıstırdım

Toplam Hit: 1210 Toplam Mesaj: 4
mysql json json_table