SQL 根据列中的值显示结果
SQL displaying results based on a value in column
所以我在网络 SQL 中有 2 个 table,其中一个看起来像这样(有几千行):
customer_number | order_number
--------------------------------------------
1234 12
1234 13
1234 14
6793 20
6793 22
3210 53
etc.
而另一个 table 像这样(也是数千行):
customer_number | first_purchase_year
----------------------------------------------------
1234 2010
5313 2001
1632 2018
9853 2017
6793 2000
3210 2005
etc.
我将此代码发送给前 select 10 位客户 table 并列出他们所有的购买:
select top 10 * from
(select distinct t1.customer_number,
stuff((select '' + t2.order_number
from orders t2
where t1.customer_number = t2.customer_number
for xml path(''), type
).value('.','NVARCHAR(MAX)')
,1,0,'')DATA
from orders t1) a
Whch 输出这个:
customer_number | order_number
--------------------------------------------
1234 12 13 14
6793 20 22
3210 53
我需要做的是只显示 first_purchase_year > 2010 的 10 个随机客户。
我不确定如何检查对应于 customer_number 的 first_purchase_year 是否大于 2010。
谢谢!
你只需要修复外from
子句中的子查询:
select c.customer_number,
stuff((select '' + o2.order_number
from orders o2
where c.customer_number = o2.customer_number
for xml path(''), type
).value('.','NVARCHAR(MAX)'
), 1, 0, ''
) as data
from (select top (10) c.customer_number
from table2 c
where c.first_purchase_year > 2010
) c;
所以我在网络 SQL 中有 2 个 table,其中一个看起来像这样(有几千行):
customer_number | order_number
--------------------------------------------
1234 12
1234 13
1234 14
6793 20
6793 22
3210 53
etc.
而另一个 table 像这样(也是数千行):
customer_number | first_purchase_year
----------------------------------------------------
1234 2010
5313 2001
1632 2018
9853 2017
6793 2000
3210 2005
etc.
我将此代码发送给前 select 10 位客户 table 并列出他们所有的购买:
select top 10 * from
(select distinct t1.customer_number,
stuff((select '' + t2.order_number
from orders t2
where t1.customer_number = t2.customer_number
for xml path(''), type
).value('.','NVARCHAR(MAX)')
,1,0,'')DATA
from orders t1) a
Whch 输出这个:
customer_number | order_number
--------------------------------------------
1234 12 13 14
6793 20 22
3210 53
我需要做的是只显示 first_purchase_year > 2010 的 10 个随机客户。 我不确定如何检查对应于 customer_number 的 first_purchase_year 是否大于 2010。 谢谢!
你只需要修复外from
子句中的子查询:
select c.customer_number,
stuff((select '' + o2.order_number
from orders o2
where c.customer_number = o2.customer_number
for xml path(''), type
).value('.','NVARCHAR(MAX)'
), 1, 0, ''
) as data
from (select top (10) c.customer_number
from table2 c
where c.first_purchase_year > 2010
) c;