2013-07-02 70 views
2

中获取的信息将行插入表中我需要根据另一个表中的行填充表。我们将调用必须填充表A的表格,然后使用填充表格B的表格。需要根据从表

表B列出了客户ID以及他们完成的不同事务类型的数量(例如,已售出,购买,交换)。

表A包含客户ID,交易名称(已出售,已购买,已交换)以及是否曾经完成该交易的列。无论他们是否完成了这笔交易,都将取决于他们完成交易的次数,如表B所记录。例如,如果客户12出售了3件东西,购买了0件东西并交换了1件东西,则他们将有: - 表B中的一行 - 表A中的三行,其中true表示已售出,false表示已购买,true表示已交换。

任何人都可以帮我开始这个基本结构吗?我从来不需要再根据另一张桌子的结果填充另一张桌子,所以这对我来说似乎有点令人生畏,我不确定我应该从哪里开始。

我正在使用Microsoft Access 2010.

谢谢你的时间!

+0

在表B中,客户12是否有2行? 1出售和1交换?我只是想在桌面布局上得到一个处理。还是表B中的列:customer_id,times_sold,times_purch,times_exch? – Lisa

+0

@Lisa客户12将有3行,1个出售,1个交换,1个购买(除了购买会说错误或类似的东西)。 –

+0

好的 - 但表B的源表呢? – Lisa

回答

1

我假设表B中的源数据都在一行中,所以你的字段是customer_id,sold,purc,exch。我还假设你想用这些数据填充表A.如果你的表B数据是多行的,让我知道,我会修改这个。如果您只想写一个查询而不填充新表,请删除外部SELECT ... INTO语句。

SELECT customer_id, trans_type, trans_status INTO A 
FROM (
     SELECT customer_id 
      , "SOLD" AS trans_type 
      , SWITCH (sold = 0, "FALSE", sold > 0, "TRUE") AS trans_status 
     FROM B 
     UNION ALL 
     SELECT customer_id 
      , "PURCHASED" AS trans_type 
      , SWITCH (purc = 0, "FALSE", purc > 0, "TRUE") AS trans_status 
     FROM B 
     UNION ALL 
     SELECT customer_id 
      , "EXCHANGED" AS trans_type 
      , SWITCH (exch = 0, "FALSE", exch > 0, "TRUE") AS trans_status 
     FROM B 
     ORDER BY customer_id, trans_type 
) 
+1

@Lisa这是完美的。谢谢!我不知道有一个SWITCH关键字! –