有一条语句可实现单条件拷贝,且只拷贝没有的数据:
Insert into <Table0> select * from <Table1> where <条件>
但其Where条件实现不了这个例子的问题,请问还有什么办法可实现?作者: qpzm 时间: 2003-10-8 18:48
找到另一个方法是在执行:
INSERT INTO Regie_Total
SELECT Total_Data.*
FROM Regie_Bill INNER JOIN Total_Data ON Regie_Bill.Bill = Total_Data.Bill;
前把 Regie_Total 表中的数据全删掉:
delete * from Regie_Total
这样可保持数据的唯一性,多谢 “ADAM” 的指点。作者: ADAM 时间: 2003-10-8 18:55
那再試試這個
查詢語句:
INSERT INTO Regie_Total
SELECT Total_Data.*
FROM (Regie_Bill LEFT JOIN Regie_Total ON Regie_Bill.Bill = Regie_Total.Bill) INNER JOIN Total_Data ON Regie_Bill.Bill = Total_Data.Bill
WHERE (((Regie_Bill.Bill) Not In ([REGIE_TOTAL].[BILL])));
我試過可經喲 作者: ADAM 时间: 2003-10-8 19:30
你說的刪除在有時很好用
我制作的一個程序有用到
但只適合REGIE_TOTAL數據合部來自于TOTAL_BILL的情況.作者: qpzm 时间: 2003-10-8 23:00
说得不错,我也想到这个问题,多谢你的帮助!
还有一个问题,拷贝过Regie_Total表的数据全为负数,我想在拷贝过去时变为正数,请问该怎么样做?作者: ADAM 时间: 2003-10-9 17:31
這個很簡單
在相應字段上加上一個函數ABS()
即可把所有負數都變為正數作者: qpzm 时间: 2003-10-9 17:37
我只想把拷贝的负数据变为正数,另外我有可能在Regie_Total表中手工输入负数,这些负数不能变为正数,如果在拷贝时的代码中实现,请教“ADAM”该怎么样做?谢谢!作者: ADAM 时间: 2003-10-9 17:52
在相應字段加入一條函數:
如:
IIF([XX字段]<0,-[XX字段],[XX字段])作者: qpzm 时间: 2003-10-9 18:15
不好意思,不太明白,是把 IIF([XX字段]<0,-[XX字段],[XX字段]) 加到下面的代码还是别的地方?如果加到下面代码,该怎么样加?
INSERT INTO Regie_Total
SELECT Total_Data.*
FROM (Regie_Bill LEFT JOIN Regie_Total ON Regie_Bill.Bill = Regie_Total.Bill) INNER JOIN Total_Data ON Regie_Bill.Bill = Total_Data.Bill
WHERE (((Regie_Bill.Bill) Not In ([REGIE_TOTAL].[BILL]))); 作者: ADAM 时间: 2003-10-9 19:06
在查詢設計時用較簡單
如,在查詢設計中,你把上面代碼復制到查詢中,然后使用查詢設計,
在相應字段加上這個即可;
如:A字段,則為:A字段:IIF([A字段]<0,-[A字段],[A字段])作者: qpzm 时间: 2003-10-9 19:38
还是实现不了,单独拷贝或取正可实现,同时进行实现不了,可否做一个传给我,toplegend@tom.com 多谢!作者: ADAM 时间: 2003-10-9 21:11
如以下查詢:
INSERT INTO Regie_Total ( Bill, Barcode_Datas, OutBox, Style, Color_no, 0, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, S, M, L, Rebate )
SELECT Total_Data.Bill, Total_Data.Barcode_Datas, Total_Data.OutBox, Total_Data.Style, Total_Data.Color_no, Total_Data.[00], F([TOTAL_DATA].[50]) AS 50, F([TOTAL_DATA].[60]) AS 60, Total_Data.[70], Total_Data.[80], Total_Data.[90], Total_Data.[100], Total_Data.[110], Total_Data.[120], Total_Data.[130], Total_Data.[140], Total_Data.[150], Total_Data.S, Total_Data.M, Total_Data.L, Total_Data.Rebate
FROM (Total_Data INNER JOIN Regie_Bill ON Total_Data.Bill = Regie_Bill.Bill) LEFT JOIN Regie_Total ON Total_Data.Bill = Regie_Total.Bill
WHERE (((Regie_Bill.Bill) Not In ([REGIE_TOTAL].[BILL])));
Function F(DATA1 As Variant)
If IsNumeric(DATA1) = False Then
F = DATA1
Else
F = IIf(DATA1 < 0, -DATA1, DATA1)
End If
End Function 作者: qpzm 时间: 2003-10-9 23:17
上面的代码拷到查询或VBA中都出错,我做了小小修改,在按钮单击事件中加入以下代码实现了:
INSERT INTO Regie_Total SELECT Total_Data.Bill, Total_Data.Barcode_Datas, Total_Data.OutBox, Total_Data.Style, Total_Data.Color_no, ABS(Total_Data.[0]) AS 0, ABS(TOTAL_DATA.[50]) AS 50, ABS(TOTAL_DATA.[60]) AS 60, ABS(Total_Data.[70]) AS 70, ABS(Total_Data.[80]) AS 80, ABS(Total_Data.[90]) AS 90, ABS(Total_Data.[100]) AS 100, ABS(Total_Data.[110]) AS 110, ABS(Total_Data.[120]) AS 120, ABS(Total_Data.[130]) AS 130, ABS(Total_Data.[140]) AS 140, ABS(Total_Data.[150]) AS 150, ABS(Total_Data.[S]) AS S, ABS(Total_Data.[M]) AS M, ABS(Total_Data.[L]) AS L, Total_Data.Rebate FROM (Regie_Bill LEFT JOIN Regie_Total ON Regie_Bill.Bill = Regie_Total.Bill) INNER JOIN Total_Data ON Regie_Bill.Bill = Total_Data.Bill WHERE (((Regie_Bill.Bill) Not In ([REGIE_TOTAL].[BILL])))