2017-08-15 11 views
0

J'ai une question à propos de l'utilisation de plusieurs fonctions dans LibreOffice Base. Je ne peux pas utiliser le IF() intérieur de SUM() est la déclaration ici:Base LibreOffice: Erreur de jeton de requête

SELECT Item.idArticleType, 
SUM(IF(Item.isNew = false, Item.stock , 0)) as 'oldStock', 
SUM(IF(Item.isNew = true , Item.stock , 0)) as 'newStock' 
FROM 'Item' 
GROUP BY 'Item.idArticleType' 

Cette déclaration fonctionne sur MySQL, mais dans LibreOffice Base de me donne un message:

jeton inattendu: IF dans un communiqué

Une aide?

+0

Je suppose que dans ma réponse que LO base utilise cette même base de données MySQL comme moteur. S'il utilise quelque chose d'autre à la place, comme HSQLDB incorporé, veuillez le mentionner. –

+0

Après l'avoir essayé en utilisant HSQLDB, il semble que cela produise l'erreur. Aviez-vous l'intention d'utiliser le moteur HSQLDB? Si c'est le cas, la syntaxe sera différente. Sinon, corrigez le fichier LO Base afin qu'il utilise MySQL. –

Répondre

1

Cela fonctionne pour moi si les guillemets sont supprimés, qu'ils soient entrés à l'invite MySQL ou dans la zone Requêtes de Base.

SELECT Item.idArticleType, 
SUM(IF(Item.isNew = false, Item.stock , 0)) as oldStock, 
SUM(IF(Item.isNew = true , Item.stock , 0)) as newStock 
FROM Item 
GROUP BY Item.idArticleType 

Le résultat:

query in LO Base