簡體   English   中英

如何將不同的物品從一張桌子變成另一張桌子?

[英]How do I get distinct items from one table into another?

編輯 :因為我使用的是ExactTarget(Salesforce Marketing Cloud),所以我只能訪問SELECT語句。 沒有一個好的SQL可以使這變得容易。

我有一張客戶表和一張優惠券表。 我想為符合條件的客戶分配唯一的代碼,但查詢#1有點卡住了。 (查詢2是一個簡單的聯接。)

表格1

+-------------+-------------+------------+
| Customer    | CouponType  | CouponCode |
+-------------+-------------+------------+
| Customer1   | 20pctoff    |            |
| Customer2   | 20pctoff    |            |
| Customer3   | 10pctoff    |            |
| Customer4   | NULL        |            |
+-------------+-------------+------------+

表2

+-------------+-------------+------------+
| CouponType  | CouponCode  | AssignedTo |
+-------------+-------------+------------+
| 10pctoff    | Coupon1     |            |
| 20pctoff    | Coupon2     |            |
| 30pctoff    | Coupon3     |            |
+-------------+-------------+------------+

查詢#1將導致以下結果:

客戶1 =優惠券2
Customer2 =無(不再提供20pctoff)
客戶3 =優惠券1
Customer4 =無(不符合條件)

更新表2的第二個SQL是一個簡單的聯接(我不需要幫助)。

解決了第三張桌子。 簡直令人難以置信,但這就是有時使用ExactTarget所要付出的代價。 警告,要求一次遍歷已知的CouponCodes 1。

新表:

+-----+------------------+--------------+
| ID  | Customer         | CouponCode   |
+-----+------------------+--------------+

目標表3,覆蓋

SELECT row_number()OVER(按客戶訂購)作為ID,表1中的客戶,其中CouponType ='20pctoff'

目標表3,更新

SELECT row_number()OVER(按CouponCode排序)作為ID,來自Table2的CouponCode,其中CouponType ='20pctoff'並且AssignedTo為NULL

目標表1,更新

SELECT t3.Customer,t3.CouponCode FROM table3 t3內部聯接table1 t1上的t1.Customer = t3.Customer,其中t3.Customer不為NULL且t3.CouponCode不為NULL

目標表2,更新

選擇t3.Customer作為AssignedTo,從table3選擇t3.CouponCode t3內部聯接table2在t2.couponCode = t3.CouponCode上選擇t2,其中t3.Customer不為null且t3.CouponCode不為null

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM