none
Incorrect syntax near 'order' hatası.

    Soru

  • SELECT  ROW_NUMBER() OVER(ORDER BY SatirIDGiris) AS 'Row Number',
    SatirIDGiris,GirisID,FaturaNo,FaturaTarihi,Fiyat,MiktarGiris,
    SUM(MiktarGiris) OVER(PARTITION BY FaturaNo ORDER BY Fiyat) AS 'ToplamGiris'
    from GirisSatir

    Merhabalar,bu işte oldukça çaylak sayılırım ,kendimce araştırıp çabaladım ancak

    Msg 102, Level 15, State 1, Line 3
    Incorrect syntax near 'order'.  Hata mesajı alıyorum.

    yukarıdaki Query deki hatanın nedenini bulamadım ,yardımcı olursanız sevinirim,teşekkürler.


    25 Mayıs 2012 Cuma 12:01

Yanıtlar

  • Merhaba Altay,

    Sen resimleri koyduktan sonra fark ettim. Sen sql server 2005 kullanıyorsun ben denemi sql server 2008 ve 2012 de yaptım. Kullanım şekli olarak SQL Server 2005 aggregate window functionla yani daha kaba bir tabirle over ile beraber partition by anahtar sözcüğünü destekler. ranking window functionlar yani row number,rank gibi fonksiyonlarda ise order by kullanabildiğin gibi gerekli oldugunda partition by anahtar sözcüğünü de kullanabilirsin. bu nedenle sql servcer 2005 de order by kullanamazsınız.

    Kolay gelsin


    SQL Server 2012 Kitabımı incelediniz mi?

    • Yanıt Olarak İşaretleyen altay kutlu 25 Mayıs 2012 Cuma 22:18
    25 Mayıs 2012 Cuma 20:29

Tüm Yanıtlar

  • Merhaba,

    Sanırım sorununuz yazım hatasından kaynaklanmıyor. Çünkü aynı tabloyu bende oluşturup denediğimde hata vermiyor. Tekrar kontrol edebilir misiniz?

    create table GirisSatir(
    SatirIDGiris int,GirisID int,FaturaNo int,FaturaTarihi datetime,Fiyat money,MiktarGiris int)

    SELECT  ROW_NUMBER() OVER(ORDER BY SatirIDGiris) AS 'Row Number',
    SatirIDGiris,GirisID,FaturaNo,FaturaTarihi,Fiyat,MiktarGiris,
    SUM(MiktarGiris) OVER(PARTITION BY FaturaNo ORDER BY Fiyat) AS 'ToplamGiris'
    from GirisSatir


    SQL Server 2012 Kitabımı incelediniz mi?

    25 Mayıs 2012 Cuma 14:50
  • merhabalar İsmail hocam 

    OVER Clause den "ORDER BY Fiyat" ifadesini çıkarırsam normal çalısıyor 
    ORDER BY veya ROWS|RANGE leri eklersem hata veriyor.
    yukarıdaki Query deki hatanın nedenini bulamadım ,yardımcı olursanız sevinirim,teşekkürler.

    Not:Görüntülerini de eklemeye çalıştım

    25 Mayıs 2012 Cuma 15:50
  • Merhaba Altay,

    Sen resimleri koyduktan sonra fark ettim. Sen sql server 2005 kullanıyorsun ben denemi sql server 2008 ve 2012 de yaptım. Kullanım şekli olarak SQL Server 2005 aggregate window functionla yani daha kaba bir tabirle over ile beraber partition by anahtar sözcüğünü destekler. ranking window functionlar yani row number,rank gibi fonksiyonlarda ise order by kullanabildiğin gibi gerekli oldugunda partition by anahtar sözcüğünü de kullanabilirsin. bu nedenle sql servcer 2005 de order by kullanamazsınız.

    Kolay gelsin


    SQL Server 2012 Kitabımı incelediniz mi?

    • Yanıt Olarak İşaretleyen altay kutlu 25 Mayıs 2012 Cuma 22:18
    25 Mayıs 2012 Cuma 20:29
  • Hocam çok teşekkür ederim...
    25 Mayıs 2012 Cuma 22:19