Multiple UNION query doesn't work

前端 未结 3 783
北恋
北恋 2020-12-20 04:50

The multiple UNION query:

SELECT [Ordine numero] AS ordine, [data ordine] AS data, comm AS commessa
FROM [archivio globale]
WHERE [ordine numero] IS NOT NULL         


        
3条回答
  •  星月不相逢
    2020-12-20 05:02

    It's a MyODBC bug see offical entry here. As of today, it's still open...

    [EDIT] I found a simple solution: myODBC will only understand queries with ONE UNION (or UNION ALL). So you have to wrap the right part of the UNION with (). Plus, you'll need to end each query with ;, like this:

    SELECT [Ordine numero] AS ordine, [data ordine] AS data, comm AS commessa
    FROM [archivio globale]
    WHERE [ordine numero] IS NOT NULL;
    
    UNION ALL (
    
    SELECT [numero ordine cliente] AS ordine, [data ordine cliente] AS data, numero AS commessa
    FROM [ricambi]
    WHERE [numero ordine cliente] IS NOT NULL;
    
    UNION ALL
    
    SELECT [numero ordine cliente] AS  ordine, [data ordine cliente] AS data, numero AS commessa
    FROM [trasferte]
    WHERE [numero ordine cliente] IS NOT NULL
    );
    

    And of course, you must apply the same method to this part, too. For instance, if you needed one more UNION ALL in you query:

    SELECT [Ordine numero] AS ordine, [data ordine] AS data, comm AS commessa
    FROM [archivio globale]
    WHERE [ordine numero] IS NOT NULL;
    
    UNION ALL (
    
    SELECT [numero ordine cliente] AS ordine, [data ordine cliente] AS data, numero AS commessa
    FROM [ricambi]
    WHERE [numero ordine cliente] IS NOT NULL;
    
    UNION ALL (
    
    SELECT [numero ordine cliente] AS  ordine, [data ordine cliente] AS data, numero AS commessa
    FROM [trasferte]
    WHERE [numero ordine cliente] IS NOT NULL;
    
    UNION ALL
    
    SELECT [numero ordine cliente] AS  ordine, [data ordine cliente] AS data, numero AS commessa
    FROM [xxx]
    WHERE [numero ordine cliente] IS NOT NULL
    ));
    

提交回复
热议问题