2012-08-23 7 views
-1

Salut programmeurs et développeurs,MS SQL 2008 R2 Queryanalyzer exécuté avec succès dans le code. Echec du champ de code SQL dans l'application LOGO

MS SQL 2008 R2 Queryanalyzer exécuté avec succès dans le code. Le champ de code SQL ayant échoué dans l'application LOGO est en cours d'exécution.

Erreur:

" The order by clause is invalid in views, inline functions,derived tables,subqueries and common table expressions,unless TOP or FOR XML is also specified" 

Ce sera affiché dans une police à espacement fixe. Les quatre premiers espaces seront supprimés, mais tous les autres espaces seront conservés.

Mon code:

printf("goodbye world!"); /* his suicide note 
           was in C */ 

SELECT PLN.[DATE_] AS 'TARİH', 
      CC.DEFINITION_ AS 'Cari Kodu', 
      TANA.DONEM AS 'MNL_Dönem', 
      CASE 
     WHEN TANA.Oda_Tipleri='1' THEN 'Tek Kişilik' 
     WHEN TANA.Oda_Tipleri='2' THEN '2 kişilik' 
     WHEN TANA.Oda_Tipleri='3' THEN '3 kişilik' 
     WHEN TANA.Oda_Tipleri='4' THEN '4 kişilik' 
     WHEN TANA.Oda_Tipleri='5' THEN '2 kişilik odada TEK kişi' 
     WHEN TANA.Oda_Tipleri='6' THEN '3 kişilik odada 2 kişi' 
    ELSE 'SEÇİLMEMİŞ' 
END 'Oda_Tipi', 
CASE  WHEN TANA.Oda_Ozellik= '1'  THEN 'Dışa Bakan Oda ' 
     WHEN TANA.Oda_Ozellik= '2' THEN 'Kurangleze Bakan Oda ' 
     WHEN TANA.Oda_Ozellik= '3' THEN 'İçe Bakan Oda ' 
     WHEN TANA.Oda_Ozellik= '4' THEN 'Arkaya Bakan Oda ' 
     WHEN TANA.Oda_Ozellik= '5' THEN 'Öne Bakan Oda ' 
    ELSE 'SEÇİLMEMİŞ' 
END Oda_Ozellik, 

CASE 
     WHEN TANA.Sene_Bilgisi = '1' THEN '2011/2012 ' 
     WHEN TANA.Sene_Bilgisi = '2' THEN '2012/2013 ' 
     WHEN TANA.Sene_Bilgisi = '3' THEN '2013/2014 ' 
     WHEN TANA.Sene_Bilgisi = '4' THEN '2014/2015 ' 
     WHEN TANA.Sene_Bilgisi = '5' THEN '2015/2016 ' 
     WHEN TANA.Sene_Bilgisi = '6' THEN '2016/2017 ' 
     WHEN TANA.Sene_Bilgisi = '7' THEN '2017/2018 ' 
     WHEN TANA.Sene_Bilgisi = '8' THEN '2018/2019 ' 
     WHEN TANA.Sene_Bilgisi = '9' THEN '2019/2020 ' 
    ELSE 'SEÇİLMEMİŞ' 
END Sene_Bilgisi, 
CASE 
     WHEN TANA.Donem_Bilgisi = '1' THEN 'Güz ' 
     WHEN TANA.Donem_Bilgisi = '2' THEN 'Bahar ' 
     WHEN TANA.Donem_Bilgisi = '3' THEN 'Yaz ' 
    ELSE 'SEÇİLMEMİŞ' 
END Donem_Bilgisi, 

CASE 
     WHEN TANA.Burs_Tipi = '1' THEN 'YÖK' 
     WHEN TANA.Burs_Tipi = '2' THEN '%25 Yönmetim Bursu' 
     WHEN TANA.Burs_Tipi = '3' THEN '%50 Yönmetim Bursu' 
     WHEN TANA.Burs_Tipi = '4' THEN '%75 Yönmetim Bursu' 
     WHEN TANA.Burs_Tipi = '5' THEN '%100 Yönmetim Bursu' 
     WHEN TANA.Burs_Tipi = '6' THEN '%50 Yurt Kredisi' 
     WHEN TANA.Burs_Tipi = '7' THEN '%100 Yurt Kredisi' 
     WHEN TANA.Burs_Tipi = '8' THEN '%100 Yönetim Burdu Mezuniyete Kadar' 
     WHEN TANA.Burs_Tipi = '9' THEN '%50 Burs %50 Yurt Kredisi' 
    ELSE 'Burssuz veya Seçilmemiş' 
END Cinsiyet_Tipi, 

CASE 
     WHEN TANA.Cinsiyet_Tipi = '1' THEN 'Erkek ' 
     WHEN TANA.Cinsiyet_Tipi = '2' THEN 'Kız ' 
    ELSE 'SEÇİLMEMİŞ' 
END Cinsiyet_Tipi, 
CASE 
     WHEN TANA.Uyruk= '0' THEN 'TC ' 
     WHEN TANA.Uyruk= '1' THEN 'Diğer ' 
     ELSE 'SEÇİLMEMİŞ' 
END Uyruk, 

PLN.[FICHEREF] As 'Sipariş Referansı', 
SIP.SPECODE As 'Sip.ÖK', 
SIP.FICHENO As 'Sip.No', 
SIP.DOCODE As 'Sip.Belge No', 
CASE WHEN (FAT.[FICHENO] IS NULL) THEN '0' WHEN (FAT.[FICHENO] IS NOT NULL) THEN FAT.[FICHENO] END AS 'Fatura No', 
PLN.[TRCODE], 
PLN.[TOTAL] AS 'PLN Taksit Tutarı', 
CASE WHEN (FAT.[NETTOTAL] IS NULL) THEN '0' WHEN (FAT.[NETTOTAL] IS NOT NULL) THEN FAT.[NETTOTAL] END AS 'Kesilen.Fat.Tut', 
CASE WHEN (PLN.[TOTAL]- FAT.[NETTOTAL] IS NOT NULL) THEN '0' WHEN (PLN.[TOTAL]- FAT.[NETTOTAL] IS NULL) THEN 'Faturalanmamış' END AS 'FARK', 
CASE WHEN (FAT.[TOTALVAT] IS NULL) THEN '0' WHEN (FAT.[TOTALVAT] IS NOT NULL) THEN FAT.[TOTALVAT] END AS 'Kesilen KDV', 
CASE WHEN (FAT.[TOTALVAT] IS NOT NULL) THEN '0' WHEN (FAT.[TOTALVAT]IS NULL) THEN ROUND((PLN.[TOTAL]-(PLN.[TOTAL]/1.08)),2) END AS 'KesileCEK KDV', 
PLN.[CANCELLED] As 'İPTAL Durumu', 
PLN.[MODIFIED], 
PLN.[PAYNO] AS 'Öd.Pln.Satırı', 
CASE WHEN (FAT.[TRACKNR] IS NULL) THEN 'Faturalanmamış' WHEN (FAT.[TRACKNR] IS NOT NULL) THEN FAT.[TRACKNR] END AS 'FAT.SIRA.NO' 
FROM LG_011_01_PAYTRANS AS PLN 
LEFT OUTER JOIN LG_011_CLCARD CC ON 
CC.LOGICALREF = PLN.CARDREF LEFT OUTER JOIN 
LG_011_01_INVOICE AS FAT ON PLN.FICHEREF=FAT.DOCTRACKINGNR AND FAT.TRACKNR=PLN.PAYNO  LEFT OUTER JOIN 
LG_011_01_ORFICHE AS SIP ON PLN.FICHEREF=SIP.LOGICALREF INNER JOIN 
LG_XT1015_011 AS TANA ON CC.LOGICALREF=TANA.PARLOGREF 
Where MODULENR=3 
ORDER BY PLN.[DATE_] ASC 

En outre, toute demande d'un rapport, le code T-SQL qui fonctionne bien, queryanalzer. Si vous empilez l'erreur de dépassement de pile peut être identifié directement à partir de la pile, alors il peut être possible de convertir les données? Comment c'est? Vous pouvez trouver un document qui explique étape par étape sur la vidéo?

erreur Détail:
cpu registers: eax = 0d3e2f60 ebx = 0d40ef98 ecx = 00000000 edx = 0042967e esi = 00000019 edi = 0012fc24 eip = 0042967e esp = 0012efa8 ebp = 0012f004

+0

erreur Détail: registres cpu: eax = 0d3e2f60 EBX = 0d40ef98 ECX = 00000000 EDX = 0042967e esi = 00000019 edi = 0012fc24 eip = 0042967e esp = 0012efa8 ebp = 0012f004 –

Répondre

0

Si tel est le message d'erreur - « L'ordre par clause est invalide dans les vues, fonctions en ligne, les tables dérivées, sous-requêtes et expressions de table commune, sauf si TOP ou FOR XML est également spécifié ", vous devez entrer" TOP 100 PERCENT "dans la clause de la déclaration où" order "est utilisé.

Dans votre cas, je suppose que ce sera:

SELECT TOP 100 PERCENT 
      PLN.[DATE_] AS 'TARIH', 
      CC.DEFINITION_ AS 'Cari Kodu', 
      TANA.DONEM AS 'MNL_Dönem', 
      CASE 
      ... 
+0

Tout d'abord, merci beaucoup pour la réponse que vous avez donnée. Mais, comme mentionné précédemment, le code Queryanalyzer en douceur. Conçu avec le programme Delphi LOGO (www.logo.com.tr), j'obtiens un rapport d'erreur qui utilise l'architecture T-SQL. –

+0

Si vous devez avoir le bloc de code suivant, le bloc de code réel, supprimer des tâches. Je ne reçois pas d'erreur à ce moment-là. Code Blog: –

+0

Si vous devez avoir le bloc de code suivant, le bloc de code réel, supprimer des tâches. Je ne reçois pas d'erreur à ce moment-là. CASE \t \t \t QUAND TANA.Oda_Tipleri = '1' puis 'Tek Kişilik' \t \t \t QUAND TANA.Oda_Tipleri = '2' puis '2 kişilik' \t \t \t QUAND TANA.Oda_Tipleri = '3' THEN '3 kişilik' . . . . CASE \t \t \t QUAND TANA.Uyruk = '0' puis 'TC' \t \t \t QUAND TANA.Uyruk = '1' puis 'Diğer' \t \t \t ELSE 'SEÇİLMEMİŞ' \t FIN Uyruk, –

Questions connexes