folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder MSSQL De Çalışan Kodu MYSQL Cevirme



MSSQL De Çalışan Kodu MYSQL Cevirme

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

    merhaba müritler

    DECLARE @tbl TABLE
    	(
        sPersonelID varchar(20),
        sAdiSoyadi varchar(20),
        sKimlikNo varchar(20),
        SaatUcret FLOAT,
        Kesintiler FLOAT,
        CalisilanGun FLOAT,
        BrutMaas FLOAT,
        NetMaas FLOAT
    	)
    
    INSERT INTO @tbl
    SELECT sPersonelID, upper(dbo.Turkce_Kaldir(sAdiSoyadi)) as sAdiSoyadi,sKimlikNo,sSaatUcret,0,0,0,0
    FROM tbPersonel where sdurum=1
    
    UPDATE @tbl
    SET    CalisilanGun = (SELECT sum(sCalismaSaat) 
    FROM tbCalisma x
    WHERE  t.sPersonelID = x.sPersonelID and
        MONTH(sCalismaTarih)=MONTH(convert([date], GETDATE(), 103)) and
        year(sCalismaTarih)=year(convert([date], GETDATE(), 103)))
    FROM @tbl t
    
    UPDATE @tbl
    SET    Kesintiler = (SELECT sum(sAvansTutar)
    FROM tbAvans x
    WHERE  t.sPersonelID = x.sPersonelID and
        MONTH(sAvansTarih)=MONTH(convert([date],GETDATE(), 103)) and
        year(sAvansTarih)=year(convert([date], GETDATE(), 103)))
    FROM @tbl t
    
    UPDATE @tbl
    SET    BrutMaas = CalisilanGun * SaatUcret
    FROM @tbl t
    
    UPDATE @tbl
    SET    NetMaas=BrutMaas-(CASE WHEN Kesintiler IS NULL THEN '0' ELSE Kesintiler END)
    FROM @tbl t
    
    
     
    SELECT sAdiSoyadi,sKimlikNo,
    (CASE WHEN Kesintiler IS NULL THEN '0' ELSE Kesintiler END) as Kesintiler,
    (CASE WHEN CalisilanGun IS NULL THEN '0' ELSE CalisilanGun END) as CalisilanGun,
    (CASE WHEN BrutMaas IS NULL THEN '0' ELSE BrutMaas END) as BrutMaas,
    (CASE WHEN NetMaas IS NULL THEN '0' ELSE NetMaas END) as NetMaas
    FROM @tbl T

    boyle bir kodum var bunu mysql gore nasıl cevırebılırım

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    buzukatak
    buzukatak's avatar
    Kayıt Tarihi: 27/Haziran/2010
    Erkek

    İşe öncelikle tbPersonel, tbCalisma ve tbAvans tablolarıyla birlikte Turkce_Kaldir'ı MySQL'de oluşturarak başlamalısın.

    Ondan sonra bu tabloların ve fonksiyonun MySQL create script'i ile soruyu güncellersen iyi bir yanıt alırsın.


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

    teşşkur ederım hocam

    http://www.sqlines.com/online adresinden msqql kodlarımı mysql convert ettım

    daha sonra gene calısmadı 

    DROP TEMPORARY TABLE IF EXISTS @tbl;
    CREATE TEMPORARY TABLE @tbl
    	(
        sPersonelID varchar(20),
        sAdiSoyadi varchar(20),
        sKimlikNo varchar(20),
        SaatUcret DOUBLE,
        Kesintiler DOUBLE,
        CalisilanGun DOUBLE,
        BrutMaas DOUBLE,
        NetMaas DOUBLE
    	)
    
    INSERT INTO @tbl
    SELECT sPersonelID, upper(dbo.Turkce_Kaldir(sAdiSoyadi)) as sAdiSoyadi,sKimlikNo,sSaatUcret,0,0,0,0
    FROM tbPersonel where sdurum=1
    
    UPDATE @tbl
    SET    CalisilanGun = (SELECT sum(sCalismaSaat) 
    FROM tbCalisma x
    WHERE  t.sPersonelID = x.sPersonelID and
        MONTH(sCalismaTarih)=MONTH(convert([date], GETDATE(), 103)) and
        year(sCalismaTarih)=year(convert([date], NOW(), 103)))
    FROM @tbl t
    
    UPDATE @tbl
    SET    Kesintiler = (SELECT sum(sAvansTutar)
    FROM tbAvans x
    WHERE  t.sPersonelID = x.sPersonelID and
        MONTH(sAvansTarih)=MONTH(convert([date],GETDATE(), 103)) and
        year(sAvansTarih)=year(convert([date], NOW(), 103)))
    FROM @tbl t
    
    UPDATE @tbl t
    SET    BrutMaas = CalisilanGun * SaatUcret
    
    UPDATE @tbl t
    SET    NetMaas=BrutMaas-(CASE WHEN Kesintiler IS NULL THEN '0' ELSE Kesintiler END)
    
    
     
    SELECT sAdiSoyadi,sKimlikNo,
    (CASE WHEN Kesintiler IS NULL THEN '0' ELSE Kesintiler END) as Kesintiler,
    (CASE WHEN CalisilanGun IS NULL THEN '0' ELSE CalisilanGun END) as CalisilanGun,
    (CASE WHEN BrutMaas IS NULL THEN '0' ELSE BrutMaas END) as BrutMaas,
    (CASE WHEN NetMaas IS NULL THEN '0' ELSE NetMaas END) as NetMaas
    FROM @tbl T

    bu kodların ıcındede msqql ait olan kodları duzenledıkten sonra çalıştı

    (@ işareti GetDATE() ,birde sorgu sonlarına ; işareti koyunca çalıştı)

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

    buda calışan hali

    DROP TEMPORARY TABLE IF EXISTS tbl;
    CREATE TEMPORARY TABLE tbl
    	(
        sPersonelID varchar(255),
        sAdiSoyadi varchar(255),
        sKimlikNo varchar(255),
        SaatUcret float,
        Kesintiler float,
        CalisilanGun float,
        BrutMaas float,
        NetMaas float
    	);
    
    INSERT INTO tbl
    SELECT sPersonelID, sAdiSoyadi as sAdiSoyadi,sKimlikNo,sUcret,0,0,0,0
    FROM tbPersonel where sdurum=1 and sFirma=1;
    
    UPDATE tbl t
    SET CalisilanGun = (SELECT sum(sCalismaSaat) FROM tbCalisma x WHERE  t.sPersonelID = x.sPersonelID and MONTH(sTarih)=MONTH(NOW()) and YEAR(sTarih)=YEAR(NOW())) ;
    
    
    UPDATE tbl t
    SET    Kesintiler = (SELECT sum(sAvansTutar) FROM tbAvans x WHERE  t.sPersonelID = x.sPersonelID );
    
    UPDATE tbl t SET    BrutMaas = CalisilanGun * SaatUcret ;
    
    UPDATE tbl t SET    NetMaas=BrutMaas-(CASE WHEN Kesintiler IS NULL THEN '0' ELSE Kesintiler END);
    
    
     
    SELECT sAdiSoyadi,sKimlikNo,
    (CASE WHEN Kesintiler IS NULL THEN '0' ELSE Kesintiler END) as Kesintiler,
    (CASE WHEN CalisilanGun IS NULL THEN '0' ELSE CalisilanGun END) as CalisilanGun,
    (CASE WHEN BrutMaas IS NULL THEN '0' ELSE BrutMaas END) as BrutMaas,
    (CASE WHEN NetMaas IS NULL THEN '0' ELSE NetMaas END) as NetMaas
    FROM tbl T

    bu arada convert upper gıbı fonskyıonları kaldırdım

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wert
    wert's avatar
    Kayıt Tarihi: 19/Eylül/2005
    Erkek

    (CASE WHEN Kesintiler IS NULL THEN '0' ELSE Kesintiler ENDas Kesintiler

    bu ve benzerleri yerine 

    ifnull(Kesintiler,0) as Kesintiler kullana bilirsin sanki


    |sadece aptalların başarısı ders notu ile ölçülür|
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    lazz
    lazz's avatar
    Kayıt Tarihi: 15/Ekim/2007
    Erkek
    wert bunu yazdı

    (CASE WHEN Kesintiler IS NULL THEN '0' ELSE Kesintiler ENDas Kesintiler

    bu ve benzerleri yerine 

    ifnull(Kesintiler,0) as Kesintiler kullana bilirsin sanki

    teşekkurler suan daha temız kod oldu

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    buzukatak
    buzukatak's avatar
    Kayıt Tarihi: 27/Haziran/2010
    Erkek

    @lazz rica ederim ne demek, sen halletmişsin zaten her şeyi.

    SQL Server'da da IfNull'a benzer IsNull ve MySQL'de de olan Coalesce'i kullanabilirsin bu arada, bunlar da daha okunaklı sorgu yazmanı sağlar, lazım olabilir ileride.

    Coalesce'in IfNull ve IsNull'dan farkı 2'den fazla kabul etmesi. İlk NULL olmayan değeri döndürür.

    Senin örneğinde SQL Server'da

    (CASE WHEN Kesintiler IS NULL THEN '0' ELSE Kesintiler END) as Kesintiler

    yerine

    Coalesce(Kesintiler, '0') As Kesintiler veya sadece 2 parametre olduğundan IsNull(Kesintiler, '0') As Kesintiler kullanılabilir kısacası. Kolay gelsin.


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

    teşekkur ederım hocam

    bir sorunum daha var 

    bu sorguyu php de nasıl alıcam

    normalde sorguları fetch ile alıyordum fakat bu sorgudan null donuyor

    bu sorgu fonksıyonum

    function sorgu($diger="") {
            $sonuc = null;
            $this->baglantiAc();
            $query = $this->db->query($diger)->fetch();
            if ( $query ) $sonuc = $query; else $sonuc = null;
            $this->baglantiKapat();
            return $sonuc;
        }

     

    bu sorgu kodlarım

    require_once("inc/veri.php");
    $vt = new veri_islemleri ();
    $sorgu = $vt->sorgu("DROP TEMPORARY TABLE IF EXISTS tbl;
    CREATE TEMPORARY TABLE tbl
    (
    sPersonelID varchar(255),
    sAdiSoyadi varchar(255),
    sKimlikNo varchar(255),
    SaatUcret float,
    Kesintiler float,
    CalisilanGun float,
    BrutMaas float,
    NetMaas float
    );
    
    INSERT INTO tbl
    SELECT sPersonelID, sAdiSoyadi as sAdiSoyadi,sKimlikNo,sUcret,0,0,0,0
    FROM tbPersonel where sdurum=1 and sFirma=1;
    
    UPDATE tbl t
    SET CalisilanGun = (SELECT sum(sCalismaSaat) FROM tbCalisma x WHERE  t.sPersonelID = x.sPersonelID and MONTH(sTarih)=11 and YEAR(sTarih)=2018 ;
    
    
    UPDATE tbl t
    SET    Kesintiler = (SELECT sum(sAvansTutar) FROM tbAvans x WHERE  t.sPersonelID = x.sPersonelID );
    
    UPDATE tbl t SET    BrutMaas = CalisilanGun * SaatUcret ;
    
    UPDATE tbl t SET    NetMaas=BrutMaas-(CASE WHEN Kesintiler IS NULL THEN '0' ELSE Kesintiler END);
    
    
    
    SELECT sAdiSoyadi,sKimlikNo,
    ifnull(Kesintiler,0) as Kesintiler,
    ifnull(CalisilanGun,0)  as CalisilanGun,
    ifnull(BrutMaas,0) as BrutMaas,
    ifnull(NetMaas,0) as NetMaas
    FROM tbl T");
    while ( $sorgu ) {
    $array[] = array( "sKimlikNo" => $sorgu[ "sKimlikNo" ],
    "sAdiSoyadi" => $sorgu[ "sAdiSoyadi" ],
    "Kesintiler" => number_format((float)$sorgu[ "Kesintiler" ] , 2, '.', ''). " TL",
    "BrutMaas" => number_format((float)$sorgu[ "BrutMaas" ] , 2, '.', ''). " TL",
    "CalisilanGun" => $sorgu[ "CalisilanGun" ] / 8,
    "NetMaas" => number_format((float)$sorgu[ "NetMaas" ] , 2, '.', ''). " TL" );
    }
    print_r(json_encode($array));

     

    lazz tarafından 29/Kas/18 17:41 tarihinde düzenlenmiştir
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    buzukatak
    buzukatak's avatar
    Kayıt Tarihi: 27/Haziran/2010
    Erkek

    PHP'den çok anlamadığım gibi bir de özel bir class var, onun da davranışını bilmiyorum. PDO falan olsa daha aşinayım.

    Bence sen bunu yeni bir konu olarak PHP bölümünde aç.


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

    pekı pdo kullanrak bunun cıktısını nasıl alırız anlatabılırmsın

  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wert
    wert's avatar
    Kayıt Tarihi: 19/Eylül/2005
    Erkek
    <?php
    	$host='host';
    	$dbname='database.adi';
    	$user='k.adi';
    	$pass='sifre';
    
    	$db=new PDO('mysql:host='.$host.';dbname='.$dbname,$user,$pass); // pdo class ı oluşturuyoruz
    	$query=$db->query('show DATABASES'); // show databases kısmına sorgunu yapıştır dışarıdan parametre gelecekse prepare-bindparam-execute kullanmak gerekir güzenlik açısından
    	$query=$query->fetchAll(); //buradan sonra dbden gelen data array şeklinde $query değişkenine aktardık
    
    ?>

    yanlış hatırlamıyorsam 

    pdo da 

    $db->query('show DATABASES; show TABLES;');

    gibi yapamıyordukmantıksız olduğunu biliyorum örneğe takılma

    $db->query('show DATABASES;');
    $db->query('show TABLES;');
    

    şeklinde yapman lazım yani sorgunu parçalarına ayırman gerekecek

    e yoghrumlamam buakadar

     


    |sadece aptalların başarısı ders notu ile ölçülür|
Toplam Hit: 2402 Toplam Mesaj: 16
mssql to mysql