2016-04-12 31 views
0

MySQL sorgusu MsSql sorgusuna dönüştürmeye çalışırken sorun dertte. Bir toplama işlevi veya GROUP BY yan tümcesi yer almayan çünküMySQL GROUP SQL Server'da hata BY tarafından

Sütun 'books.id' Seçim listesinde geçersiz:

Hata belirtiyor.

Bu kod emer. önceden referans sqlfiddle.com/#!3/4ed19/22

Teşekkür için

SELECT * FROM books group by books.category_id 

!!

+3

kural TARAFINDAN genel GRUP diyor ki: "hükmündeki BY GROUP belirtilirse, her sütun başvurusu içinde SEÇİM listesi ya bir gruplama sütunu tanımlamalı veya ayarlanmış bir fonksiyonun argümanı olmalıdır. – jarlh

+0

Bize bazı örnek tablo verilerini ve beklenen sonucu göster! – jarlh

+3

MySQL sadece rastgele bir satır döndürür ve diğer her DBMS'nin benzer bir hata iletisi döndüreceğini görürsünüz. * Hangi * satırın döneceğine karar vermelisiniz. * Gerçek SQL dünyasına hoş geldiniz * :) – dnoeth

cevap

1

Bu SQL sorgusunun projeksiyon alanının, grup tarafından kullanmakta olduğunuzdan başka bir sütun üzerinde bir toplamına sahip olması gerekir.

select colA, MAX(colB) 
from myTable 
group by colA 

Gördüğünüz gibi

, projeksiyon gruplama yapılmıştır hangi Cola içerir. Projeksiyonda kullanılan diğer sütun, bir toplu işlevle birlikte kullanılır.

o books.category_id dışındaki kalan tüm sütunları bir toplamını gerçekleştirmek isteyecektir olarak * kullanmamaya çalışın

+0

Aynı kategori_id'e sahip olan kitapların 3'ünü düşünelim. 2. nasıl gidersiniz? Bununla..? – Rishi

+0

Groupby kullanarak ulaşmak istediğiniz şeye bağlıdır. Üç kitap aynı category_id değerine sahip olduğunda, fiyatını belirtmek isteyip istemediğinize karar vermeniz veya sayımı göstermek isteyip istemediğiniz veya üç fiyat arasında en yüksek fiyatı göstermek istediğinize karar vermeniz gerekir. İhtiyaçlarınızı burada açıklayabilirseniz, belki yardımcı olabiliriz. – Vipul

+1

düşünün kitaplar tablo {id adı category_id} {1 A 1} {2 oda 1} {3 C2} Sana herhangi bir kayıt toplayarak olmadığından category_id – Rishi