这是我在sql中的查询。好像说我有语法错误。我曾经习惯在SQL Server中编码而不是Access,因为我期待这个结果。如果有人能帮我纠正我的代码,我真的很感激!
create table M (
NMR_METER_PT_REF Varchar (50) ,
NMR_ST_METER_READ_DATE Datetime,
NMR_END_METER_READ_DATE datetime,
NMR_ST_METER_READING Int,
NMR_END_METER_READING int,
RCH_RECONCILIATION_QTY int,
METERS_THROUGH_ZEROS_COUNT int);
INSERT M (
SELECT
NMR_METER_PT_REF
, NMR_ST_METER_READ_DATE
, NMR_END_METER_READ_DATE
, NMR_ST_METER_READING
, NMR_END_METER_READING
, RCH_RECONCILIATION_QTY
, METERS_THROUGH_ZEROS_COUNT
FROM G
WHERE (((NMR.ST.METER_READING) <= NMR.ST.METER_READING)))
select * from M
drop table M
;
答案 0 :(得分:0)
首先插入后的丢弃表是疯了:)
使用INSERT
时第二次指定列列表:
create table M (
NMR_METER_PT_REF Varchar (50) ,
NMR_ST_METER_READ_DATE Datetime,
NMR_END_METER_READ_DATE datetime,
NMR_ST_METER_READING Int,
NMR_END_METER_READING int,
RCH_RECONCILIATION_QTY int,
METERS_THROUGH_ZEROS_COUNT int);
INSERT M ( NMR_METER_PT_REF
, NMR_ST_METER_READ_DATE
, NMR_END_METER_READ_DATE
, NMR_ST_METER_READING
, NMR_END_METER_READING
, RCH_RECONCILIATION_QTY
, METERS_THROUGH_ZEROS_COUNT)
SELECT
NMR_METER_PT_REF
, NMR_ST_METER_READ_DATE
, NMR_END_METER_READ_DATE
, NMR_ST_METER_READING
, NMR_END_METER_READING
, RCH_RECONCILIATION_QTY
, METERS_THROUGH_ZEROS_COUNT
FROM G
WHERE NMR.ST.METER_READING <= NMR.ST.METER_READING; -- always true
-- drop table M
select * from M;
drop table M;
最后,您的WHERE
条件引用了FROM
子句中未指定的对象。
修改强>
如果您想在SQL Server中使用临时表,可以使用temporary table:
SELECT
NMR_METER_PT_REF
, NMR_ST_METER_READ_DATE
, NMR_END_METER_READ_DATE
, NMR_ST_METER_READING
, NMR_END_METER_READING
, RCH_RECONCILIATION_QTY
, METERS_THROUGH_ZEROS_COUNT
INTO #M
FROM G
-- WHERE NMR.ST.METER_READING <= NMR.ST.METER_READING --??
SELECT * FROM #M;
答案 1 :(得分:0)
总结如下:
INSERT
必须为INSERT INTO
WHERE (((NMR.ST.METER_READING) <= NMR.ST.METER_READING))
将字段与自身进行比较。