-1
votes

Query me donne une erreur de syntaxe dans l'erreur de la clause

Cette requête SQL fonctionne parfaitement dans un ancien fichier d'accès MS, mais après le recréer pour une table plus récente, cela me donne une erreur de syntaxe dans la clause de la clause depuis.

select * from ( with dso as (select month, product_line, third_cust_indic as sales_type,  
                    sum(sales) + sum(beg_snb_ra) as beg_sales,  
    


3 commentaires

|| '' || n'est pas non plus valide syntaxe valide. T-SQL utilise plus ( + ) pour la concaténation, pas double tuyau ( || ).


"Query me donne une erreur de syntaxe." Ne nous aidera pas à nous aider. Où est l'erreur? C'est comme si tu dis que tu dis à votre mécanicien "ma voiture est cassé", sans autre information.


Vous venez donc de mettre à jour votre question pour dire "MS Access" mais vous avez étiqueté SQL Server? Lequel est-ce?


3 Réponses :


3
votes

S'il s'agit de SQL Server, le avec code> doit précéder le SELECT CODE>:

with dso as (
      select . . .
      . . .
     )
select . . .


0 commentaires

0
votes
with dso as (select year, month, product_line_id, third_party_cust_indic as sales_type,  
                    sum(beg_snb_sales) + sum(beg_snb_ra) as beg_snb_sales,  
                    sum(snb_sales) + sum(snb_ra) as snb_sales,  
                    sum(beg_snb_cost) as beg_snb_cost,
                    sum(snb_cost) as snb_cost,
                    sum(spa) as spa_amount, 
                    sum(invoiced_sales) + coalesce(sum(ic_extended_price),0) as invoiced_sales,
                    sum(gross_invoiced_sales) as gross_invoiced_sales, 
                    sum(invoiced_cost)+ coalesce(sum(ic_extended_cost),0) as cost,
                    sum(beg_bl_future) + sum(beg_bl_dated) + sum(beg_bl_alloc) + sum(beg_bl_not_produced) as beginning_backlog,
                    sum(bl_future) + sum(bl_dated) + sum(bl_alloc) + sum(bl_not_produced) as current_backlog, 
                    sum(bl_alloc) as bl_alloc,
                    sum(bl_dated) as bl_dated,
                    sum(bl_future) as bl_future,
                    sum(bl_not_produced) as bl_not_produced,
                    sum(promos) + sum(edi_disc_allowance) + sum(new_store_allowance) + sum(ord_level_disc_allowance) + sum     (rdc_allowance) + sum(cert_rec_allowance) 
                    + sum(defective_allowance) + sum(freight_allowance)  + sum(adv_coop_allowance) + sum(store_svc_allowance) + sum(promo_amt) + sum(below_min_order_fee) as order_level_discounts,
manufacturing_location, inv_legal_entity || ' ' || inv_legal_entity_desc as shipping_location


       from prodsales.monthly_sales_orders
      where year = 2018
        and month = 10
        and (CUST_LEGAL_ENTITY = '001' )
     --  or ar_legal_entity = '001') 
        and PRODUCT_LINE_ID <> '000'
        and BUSINESS_UNIT_ID Not in ('OI','IC','BI','RF')  
      group by year, month, product_line_id, third_party_cust_indic, manufacturing_location, inv_legal_entity || ' ' || inv_legal_entity_desc
     )
, Pl as (select distinct product_line_id as pl from dso)
, YN as (select distinct sales_type as slstyp, year, month, day  from dso)
, pl_indic as (select * from pl, yn)
select * from DSO
... though you don't seem to be using PL, YN or PL_INDIC.

0 commentaires

0
votes

Votre requête ressemble à:

select * 
from ( 
    with dso as (
        select 
            ...
        from prodsales.monthly_sales_orders
        where
            ...
        )
    and ...
    group by ...
),
Pl as (select ... from dso),
YN as (select ... from dso),
pl_indic as (select ... from YN)


0 commentaires