0

有点奇怪。我在数据库中有一个表,该表存储另一个表中记录的 ID。我需要检索并以某种方式存储来自 table1 的信息。

信息:产品、图像 ID、数量

所以Image ID就是table2中记录的ID。然后我将使用它来获取该记录。通过该记录,我将找到图像的保存位置,并将图像写入文档的次数与存储在该产品的数量值中的次数相同。

希望你明白我需要这个工作。这是一些示例数据。

-Product 1-
Product -> "KR"
Image ID -> 772
Quantity -> 2

-Product 2-
Product -> "KR"
Image ID -> 774
Quantity -> 5

-Product 3-
Product -> "LR"
Image ID -> 776
Quantity -> 1

现在使用上述数据,使用 Image ID 作为行唯一 ID 从 table2 获取数据并存储保存位置。

这是我目前正在尝试的,但它似乎不起作用。

<!--#include virtual="nightclub_photography\asp\functions.asp"-->
<%
'Connect to database
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.ACE.OLEDB.12.0"
conn.Open Server.MapPath("/nightclub_photography/data/database/jamsnaps.mdb")

'Get the current date
today = ISODate(Request.Cookies("sdate") & " 00:00:00")

'Query the database for sales
sql = "SELECT * FROM sales WHERE DATEVALUE(saleDate) = " & today & " AND printed = 0 ORDER BY product"
Set rs = conn.Execute(sql)

Set sales = Server.CreateObject("Scripting.Dictionary")

if rs.EOF then
    response.write "No sales found!"
else
    do until rs.EOF
        'response.write rs("product")&":"&rs("quantity")&", "
        if sales.Exists(rs("product")) then
            sales.Item("product") = ","&rs("jpgId")&":"&rs("quantity")
        else
            sales.Add rs("product"), rs("jpgId")&":"&rs("quantity")
        end if      

        'Move to next sale
        rs.MoveNext
    loop
end if

rs.close
conn.close
%>

更新 1 出现错误,现在稍微简化一下,只是想让它先得到一些结果。

错误: Type mismatch in expression.

询问: sql = "SELECT * FROM images WHERE ID IN (SELECT jpgId FROM sales WHERE printed = 0)"

因此,使用编号为“2”的行中的 jpgId。将返回标有“1”的具有相同 ID 的行。它将为每个销售行执行此操作。

看图片

4

1 回答 1

0

我不确定我是否理解,但你可以尝试这样的事情

select id,* from mytable where id in (select id from mytable2 where salesdate = date and print= 0)

更新 mytable2 print = 1 where id = " & myid

于 2013-09-02T20:09:32.963 回答