1

次のクエリがあり、エラーが発生します

SELECT CRM_PRESUPUESTOS.Fecha_Alta, CRM_PRESUPUESTOS.ID_VendedorAsignado, Sum([Precio]*(100-[CRM_PresupuestosDetalles].[Bonif])/100*[CRM_PresupuestosDetalles].[Cantidad]) AS LineaNeto
FROM CRM_PRESUPUESTOS RIGHT JOIN CRM_PresupuestosDetalles ON CRM_PRESUPUESTOS.ID_Presupuesto = CRM_PresupuestosDetalles.ID_Presupuesto
GROUP BY CRM_PRESUPUESTOS.Fecha_Alta, CRM_PRESUPUESTOS.ID_VendedorAsignado
HAVING ((DATE((CRM_PRESUPUESTOS.Fecha_Alta))=CurDate()));

エラーは

[Err] 1064 - SQL 構文にエラーがあります。使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認しください

どうすればこれを修正できますか? 問題はおそらく、Access でビルドしていることです。

4

2 に答える 2

1

角括弧 、[ ]は t-sql 固有です。これらは、含まれているテキストが文字列であることをパーサーに伝え、t-sql 予約語を誤って使用する可能性を防ぎます。これを行う MySql と同様の方法は、バッククォートを使用することです。

SELECT CRM_PRESUPUESTOS.Fecha_Alta, 
CRM_PRESUPUESTOS.ID_VendedorAsignado, 
Sum(`Precio`*(100-`CRM_PresupuestosDetalles`.`Bonif`)/100*`CRM_PresupuestosDetalles`.`Cantidad`) AS LineaNeto
FROM CRM_PRESUPUESTOS RIGHT JOIN CRM_PresupuestosDetalles ON CRM_PRESUPUESTOS.ID_Presupuesto = CRM_PresupuestosDetalles.ID_Presupuesto
GROUP BY CRM_PRESUPUESTOS.Fecha_Alta, CRM_PRESUPUESTOS.ID_VendedorAsignado
HAVING ((DATE((CRM_PRESUPUESTOS.Fecha_Alta))=CurDate()));
于 2012-12-04T18:22:42.167 に答える
0

これを試して::

SELECT 
CRM_PRESUPUESTOS.Fecha_Alta, 
CRM_PRESUPUESTOS.ID_VendedorAsignado, 
Sum(Precio*(100-CRM_PresupuestosDetalles.Bonif/100*CRM_PresupuestosDetalles.Cantidad) AS LineaNeto

FROM CRM_PRESUPUESTOS RIGHT 
JOIN CRM_PresupuestosDetalles ON CRM_PRESUPUESTOS.ID_Presupuesto = CRM_PresupuestosDetalles.ID_Presupuesto

GROUP BY CRM_PRESUPUESTOS.Fecha_Alta, CRM_PRESUPUESTOS.ID_VendedorAsignado
HAVING DATEDIFF(CRM_PRESUPUESTOS.Fecha_Alta, CurDate)=0
于 2012-12-04T18:21:28.553 に答える