• 03-04-2014, 22:12:32
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba,

    php ile çözülebilecek olayı tek sorguda bitirmek istiyorum mümkünde bunun için de biraz yardıma ihtiyacım var.

    Tablomuzda a b c sütunlarının olduğunu varsayalım.

    (a * b) / 1.c = sonuc1
    ...
    ...
    sonuç artık kaç satır varsaya kadar gidip en sonunda bütün sonuçların toplamı lazım.

    dip not: c deki veriler 18 ve 8 şekilde (yani 1.18 veya 1.08 olmalı)

    bunu php ile yapacak olsak at döngünün içine dönsün dursun ama bunu sql içinde nasıl çözeriz. bu arada / 1.c çok da elzem bir durum değil o olmasa da olur şimdilik
  • 03-04-2014, 23:28:11
    #2
    Aşağıdaki şekilde dener misiniz ?

    SELECT SUM((a * b) / c) as Sonuc FROM tabloadi
    Edit: c'li si içinde alttakini deneyebilirsiniz.

    SELECT SUM((a * b) / (c / 100) + 1) as Sonuc FROM tabloadi
  • 04-04-2014, 01:01:07
    #3
    @yasarkemaldag Hocam yaşam destek ünitesi oldun

    $MALIYET =mysql_query("SELECT SUM( (Stok*Maliyet) / ((KDV/100)+1) ) as Sonuc FROM Urunler");
    Şeklinde işimi gördü.

    Peki bu sorguyu biraz daha zorlaştırmak istesek.

    mesela
    a ve b sütununu çarpıp c ve b sütunun çarpımına bölsek sonra bu sonuçtan yola çıkarak sonucu artan sıralasak ve ona göre ürün kodlarını rica etsek nasıl verir

    <? $ECS1 = mysql_query("SELECT ( (Stok*Maliyet)/(Satin_Alinan*Maliyet) ) as ECSSS1 FROM Urunler WHERE Barkod Like '___1_________' ORDER BY ECSSS1 AND ID ASC LIMIT 10"); 
    
    while($ECSS1=mysql_fetch_array($ECS1))	{ ?>
    
    <? echo $ECSS1['Urun_Kodu']; ?> - 
    	
    	<?
    }
    	
    	?>
    şeklinde denedim ama boş sonuç aldım araya 10 tane - yapıyor.
  • 04-04-2014, 09:47:15
    #4
    @oguzhan306;

    Yazım hatasından mı kaynaklanıyor acaba sorguyu aşağıdaki şekilde dener misiniz

    $ECS1 = mysql_query("SELECT ( (Stok*Maliyet)/(Satin_Alinan*Maliyet) ) as ECSSS1 FROM Urunler WHERE Barkod Like '___1_________' ORDER BY ECSSS1 ASC, ID ASC LIMIT 10")
  • 04-04-2014, 10:54:43
    #5
    @yasarkemaldag

    yok olmadı yine aynı hata. bu arada matematik işleminde bir hatam olmuş ama sorguyu etkileyecek bir hata değil çalışsa çalışırdı.

    <? $EncokSatanSorgusu = mysql_query("SELECT * FROM Urunler WHERE Barkod Like '___1_________' AND Satin_Alinan > 12 ORDER BY ID DESC LIMIT 12");
    şeklinde sorgu atınca haliyle çalışıyor

    Benim buradaki amacım (((Satin_Alinan-Stok)*100)/Satin_Alinan) işlemiyle her satır için bir satış yüzdesi buldurup bunu azalan sıralatmak, efendime söyliyeyim bunu sadece bazı barkod aralığında ve belli stok sayısının üzerindeki ürünlerde yapmak gibi. Çok mu karışık oldu