Sql 多个子查询
我有一个Excel文件,其中包含10月份的列Sql 多个子查询,sql,oracle,Sql,Oracle,我有一个Excel文件,其中包含10月份的列 滑动-表示用户ID 初次见面日期 上次见面日期 总数 客户名称 过去90天的会议总数 30天内有效 我有四张桌子 SLUSR_USR,带两列SLUSR_USR_ID、SLUSR_USR_Cust_name 与2 cols Sku St_COMPANYID的销售,销售日期 SKU COMPANY有3列companyID、SKU companyID、STS SKU SLUSRID SLUSR\u点击3列,分别为SKU SLUSRID、STS\u c
- 滑动-表示用户ID
- 初次见面日期
- 上次见面日期
- 总数
- 客户名称
- 过去90天的会议总数
- 30天内有效
- SLUSR_USR,带两列SLUSR_USR_ID、SLUSR_USR_Cust_name
- 与2 cols Sku St_COMPANYID的销售,销售日期
- SKU COMPANY有3列companyID、SKU companyID、STS SKU SLUSRID
- SLUSR\u点击3列,分别为SKU SLUSRID、STS\u companyID、report\u DATE
SELECT
SLUSR_USR_ID, SLUSR_USR_CUST_NAME, SALES_COUNT
FROM
(SELECT
SLUSR_USR_ID, SLUSR_USR_CUST_NAME,
COUNT(SALES_DATE) SALES_COUNT
FROM
SLUSR_USR, SALES, SK_COMPANY
WHERE
SLUSR_USR_ID = STS_SK_SLUSR_ID
AND companyID = SK_STS_COMPANY_ID
AND TRUNC(SALES_DATE) BETWEEN '01-Oct-2019' AND '31-Oct-2019'
GROUP BY
SLUSR_USR_ID, SLUSR_USR_CUST_NAME)
这将返回总的会面次数、滑动次数和客户名称
注意:销售日期的数量等于每个SLUSR\u用户ID完成的会议数量,报告日期将给出每个Slider的活动状态->Slider相当于SLUR\u用户ID->公司ID分配给每个Slider->一个销售日期意味着每个Slider一次会议)
但我仍在为一些计数而挣扎,例如,我想在子查询中使用下面的查询
firsT_Meet_date
LAst_meet_date
Total_meet in Last90DAYS
Active In 30Days
对于第一次和最后一次见面日期,我使用的是max和min函数
SELECT
MAX(SALES_DATE), MIN(SALES_DATE),
SLUSR_USR_ID, COUNT(SALES_DATE)
FROM
SLUSR_USR, DSR_SALES, SK_COMPANY
WHERE
SLUSR_USR_ID = STS_SK_SLUSR_ID
AND companyID = SK_STS_COMPANY_ID
AND TRUNC(SALES_DATE) BETWEEN '01-Oct-2019' AND '31-Oct-2019'
GROUP BY
SLUSR_USR_ID
另外,对于最近90天内的Total_meet和30天内的Active,我想使用表SLUSR_CLick by use sysDATE-90再次标记SQL Server和Oracle-这是故意的吗?这个问题有点难以理解,但我想你想做选择性计数,这可以通过表达式来完成,例如
sum(datediff时的情况(d,sales_date,getdate())-在ANSI-92 SQL标准中(超过25年前),用正确的ANSIJOIN
语法替换了旧样式的逗号分隔表样式,不鼓励使用它