• 14-01-2019, 17:54:22
    #1
    SELECT
    
    CASE INV.TRCODE WHEN 7 THEN 'Perakende Satış Faturası' WHEN 8 THEN 'Toptan Satış Faturası' END 'Fiş Türü',
    INV.DATE_ 'Tarih',
    FICHENO 'FişNo',
    CLC.DEFINITION_ 'Cari Hesap',
    INV.GROSSTOTAL 'Satış Fiyatı',
    SUM(STL.AMOUNT * STL.OUTCOST) 'Maliyet',
    INV.GROSSTOTAL - SUM(STL.AMOUNT * STL.OUTCOST) 'Kâr',
    INV.TOTALVAT 'KDV',
    INV.NETTOTAL 'Fatura Toplam'
    
    FROM LG_025_01_INVOICE INV
    LEFT JOIN LG_025_CLCARD CLC ON INV.CLIENTREF = CLC.LOGICALREF
    LEFT JOIN LG_025_01_STLINE STL ON INV.LOGICALREF = STL.INVOICEREF
    
    WHERE INV.TRCODE = 7 AND INV.TRCODE = 8
    bu sorguyu mssql de çalıştırdığımda

    Alıntı
    Msg 8120, Level 16, State 1, Line 4
    Column 'LG_025_01_INVOICE.TRCODE' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
    hatası alıyorum sebebi ne olabilir ?
  • 14-01-2019, 19:42:29
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    WHERE den sonra "GROUP BY LG_025_01_INVOICE.TRCODE" ekle. Ekledikten sonra bu sefer aggregate olmayan diger kolonlar icinde hata vericek, hepsini group by'dan sonra eklersin duzelir.
    Yani şöyle:
    SELECT
     
        CASE INV.TRCODE WHEN 7 THEN 'Perakende Satış Faturası' WHEN 8 THEN 'Toptan Satış Faturası' END 'Fiş Türü',
        INV.DATE_ 'Tarih',
        FICHENO 'FişNo',
        CLC.DEFINITION_ 'Cari Hesap',
        INV.GROSSTOTAL 'Satış Fiyatı',
        SUM(STL.AMOUNT * STL.OUTCOST) 'Maliyet',
        INV.GROSSTOTAL - SUM(STL.AMOUNT * STL.OUTCOST) 'Kâr',
        INV.TOTALVAT 'KDV',
        INV.NETTOTAL 'Fatura Toplam'
     
    FROM
        LG_999_01_INVOICE INV
        LEFT JOIN LG_999_CLCARD CLC ON INV.CLIENTREF = CLC.LOGICALREF
        LEFT JOIN LG_999_01_STLINE STL ON INV.LOGICALREF = STL.INVOICEREF
     
    WHERE
        INV.TRCODE = 7 AND INV.TRCODE = 8
    GROUP BY
        INV.TRCODE
        ,INV.DATE_
        ,INV.FICHENO
        ,CLC.DEFINITION_
        ,INV.GROSSTOTAL
        ,INV.TOTALVAT
        ,INV.NETTOTAL
  • 15-01-2019, 08:47:31
    #3
    dilebu adlı üyeden alıntı: mesajı görüntüle
    WHERE den sonra "GROUP BY LG_025_01_INVOICE.TRCODE" ekle. Ekledikten sonra bu sefer aggregate olmayan diger kolonlar icinde hata vericek, hepsini group by'dan sonra eklersin duzelir.
    Yani şöyle:
    SELECT
     
        CASE INV.TRCODE WHEN 7 THEN 'Perakende Satış Faturası' WHEN 8 THEN 'Toptan Satış Faturası' END 'Fiş Türü',
        INV.DATE_ 'Tarih',
        FICHENO 'FişNo',
        CLC.DEFINITION_ 'Cari Hesap',
        INV.GROSSTOTAL 'Satış Fiyatı',
        SUM(STL.AMOUNT * STL.OUTCOST) 'Maliyet',
        INV.GROSSTOTAL - SUM(STL.AMOUNT * STL.OUTCOST) 'Kâr',
        INV.TOTALVAT 'KDV',
        INV.NETTOTAL 'Fatura Toplam'
     
    FROM
        LG_999_01_INVOICE INV
        LEFT JOIN LG_999_CLCARD CLC ON INV.CLIENTREF = CLC.LOGICALREF
        LEFT JOIN LG_999_01_STLINE STL ON INV.LOGICALREF = STL.INVOICEREF
     
    WHERE
        INV.TRCODE = 7 AND INV.TRCODE = 8
    GROUP BY
        INV.TRCODE
        ,INV.DATE_
        ,INV.FICHENO
        ,CLC.DEFINITION_
        ,INV.GROSSTOTAL
        ,INV.TOTALVAT
        ,INV.NETTOTAL
    hocam bu şekilde sorgu sorunsuz çalışıyor fakat değerler gelmiyor tablolar boş geliyor

    edit: tamam hocam where koşulunu or yerinde and yapmışım şuan sorun yok çok teşekkür ederim.