2010-05-24 8 views
1

Je reçois une erreur ennuyante dans Visual Studio pour SQL qui s'exécute bien.erreur Visual Studio sur SQL valide

SELECT InvoiceLines.LineID, 
     InvoiceLines.InvoiceID, 
     InvoiceLines.Text, 
     InvoiceLines.Rate, 
     InvoiceLines.Count, 
     InvoiceLines.Rate * InvoiceLines.Count AS LineTotal, 
     ((InvoiceLines.Rate * InvoiceLines.Count) * (1 + Invoices.VatRate/100)) * (1 - CAST(Invoices.Discount AS money) * InvoiceLines.ApplyDiscount/100) AS LineTotalIncVat, InvoiceLines.ApplyDiscount 
    FROM InvoiceLines 
LEFT JOIN Invoices ON Invoices.InvoiceID = InvoiceLines.InvoiceID 

Qu'est-ce que LineTotalIncVat essaie de faire est de calculer le total de l'élément de la facture, tout en ajoutant la cuve et en soustrayant la réduction, et oui, probablement mieux de le faire dans le code (ferais si je pouvais)

l'erreur visual studio donne est:

Il y a eu une erreur d'analyse de la requête [ligne jeton numéro = 1, ligne jeton offset = 14, jeton dans l'erreur = InvoiceLines]

Même si elle validera et exécuter sans problème dans le générateur de requête ...

+0

peut vous envoyer le code utilisé pour exécuter le sql ... –

+0

il a été fait par l'assistant constructeur de jeux de données (son une douleur) – Sam

Répondre

0

Résolu

supprimé le tableau de l'ensemble de données et l'a ajouté à nouveau avec exactement le même SQL.

Comme c'est étrange ... bien que ce ne soit pas la première fois que je dois le faire.

3

Essayez bracketing les noms de table et de colonne, on peut avoir du mal parce que l'analyse syntaxique InvoiceLines.CountCount est un mot réservé. Essayez [InvoiceLines].[Count].

+0

+1 certainement la peine d'essayer – oedo

+0

'Text' Aussi peut être un mot-clé réservé. L'ensemble de mots-clés réservés dépend du pilote de base de données utilisé. – Guffa

+0

N'a pas fonctionné, le constructeur de requête les a dépouillés :( – Sam