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 Réponses :
S'il s'agit de SQL Server, le avec code> doit précéder le SELECT CODE>: with dso as (
select . . .
. . .
)
select . . .
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.
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)
|| '' || code> n'est pas non plus valide syntaxe valide. T-SQL utilise plus (+ code>) pour la concaténation, pas double tuyau (|| code>)."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?