• 13-07-2022, 23:31:07
    #1
    Merhaba bir sipariş tablom var ;

    id --- urun_id --- adet
    1 | 5 | 3
    2 | 5 | 4
    3 | 3 | 2
    4 | 3 | 3
    5 | 5 | 6


    Ben Sonuçta şunu yazdırmak istiyorum
    urun 5 adet 13
    urun 3 adet 5

    PHP ile yapmam için gerekli algoritmayı tasarlayamadım sorgu olarak bunu halletmenin bir yolu var mı?
  • 13-07-2022, 23:34:01
    #2
    dictionary kullanabilirsiniz.

    https://paste.ofcode.org/9aqZsmi8Qjj3rnKd8r6rhW


    şu mantıkla
  • 13-07-2022, 23:36:09
    #3
    ribrahimozer adlı üyeden alıntı: mesajı görüntüle
    dictionary kullanabilirsiniz.

    https://paste.ofcode.org/9aqZsmi8Qjj3rnKd8r6rhW


    şu mantıkla
    Teşekkür ederim hocam diğer yöntemleride görsem iyi olacak.
  • 13-07-2022, 23:54:36
    #4
    SUM(adet) ve GROUP BY urunid ile sorunu çözdüm
  • 26-07-2022, 01:22:13
    #5
    ONURERDGN adlı üyeden alıntı: mesajı görüntüle
    SUM(adet) ve GROUP BY urunid ile sorunu çözdüm
    Aynen öyle tüm sql sürümlerinde bu şekilde kullanabilirsiniz. Bravo çözümü kendiniz buldunuz ve mantığını da çözmüşsünüz .
    Aşağıda biraz daha genişlettim olayı örnekler için. Belki sonradan okuyacak arkadaşlara faydam dokunur.


    select a.örnek1,a.örnek2,b.örnek1,b.örnek2, //sorguda çekilen kolonlar
    sum(a.adet) as toplam //direk toplayabilirsiniz, sadece toplar
    sum(case when a.tip='g' then a.adet else -adet end) as toplam2 //bir tabloda hem girişleri hem çıkışları tutuyorsanız ve bunu tipinden ayırt ediyorsanız bu şekilde bakiye yi bulabilirsiniz
    from örnek1.tablo a //sorgunun çağırılacağı ana tablo
    left outer join örnek2.tablo b on a.id=b.id //herhangi başka bir tabloyu join leyebilirsiniz
    where ... //koşullarınızı belirtebilirsiniz
    group by a.id //group by ile aynı değerleri tek satır olarak alabilirsiniz mysql sürümünde tek bir kolonu group layabilirsiniz ancak mssql sürümünde tamamını group lamanızı isteyecektir (ah gıcık MSsql)
    having sum(case when a.tip='g' then miktar else -miktar end) > 0 //having ile sum ladığınız değerleri where leyebilirsiniz
    adet tablosu örnek
    id,tip,adet
    0,g,1
    1,c,2
    2,g,1
  • 27-07-2022, 05:27:11
    #6
    Heaven_Tr adlı üyeden alıntı: mesajı görüntüle
    Aynen öyle tüm sql sürümlerinde bu şekilde kullanabilirsiniz. Bravo çözümü kendiniz buldunuz ve mantığını da çözmüşsünüz .
    Aşağıda biraz daha genişlettim olayı örnekler için. Belki sonradan okuyacak arkadaşlara faydam dokunur.


    select a.örnek1,a.örnek2,b.örnek1,b.örnek2, //sorguda çekilen kolonlar
    sum(a.adet) as toplam //direk toplayabilirsiniz, sadece toplar
    sum(case when a.tip='g' then a.adet else -adet end) as toplam2 //bir tabloda hem girişleri hem çıkışları tutuyorsanız ve bunu tipinden ayırt ediyorsanız bu şekilde bakiye yi bulabilirsiniz
    from örnek1.tablo a //sorgunun çağırılacağı ana tablo
    left outer join örnek2.tablo b on a.id=b.id //herhangi başka bir tabloyu join leyebilirsiniz
    where ... //koşullarınızı belirtebilirsiniz
    group by a.id //group by ile aynı değerleri tek satır olarak alabilirsiniz mysql sürümünde tek bir kolonu group layabilirsiniz ancak mssql sürümünde tamamını group lamanızı isteyecektir (ah gıcık MSsql)
    having sum(case when a.tip='g' then miktar else -miktar end) > 0 //having ile sum ladığınız değerleri where leyebilirsiniz
    adet tablosu örnek
    id,tip,adet
    0,g,1
    1,c,2
    2,g,1
    Sizin gibi üyeleri buralarda görmek beni mutlu ediyor