QUERY 1基于当前列上选择列(SQL)
WITH CUST1 AS
(SELECT CUSTOMER_ID, TYPE FROM CUSTOMERS WHERE CONDITION),
CARS1 AS
(SELECT * FROM CARS INNER JOIN CUST1 ON
CUST1.CUSTOMER_ID = CARS.CUSTOMER_ID AND
CUST1.TYPE = CARS.TYPE) select * from CARS1;
CUSTOMERE TABLE
CUSTOMER_ID || TYPE
------------|| -------
1 || 5
2 || 5
3 || 2
4 || 2
CARS TABLE
CAR_ID || CUSTOMER_ID || TYPE || SN || DATE
------- || ------------ || ------ || ----- || -------
1 || 1 || 5 |||| 02/06/1999
2 || 1 || 2 || 2365 || 03/08/1999
3 || 1 || 3 || 5156 || 03/02/1999
4 || 3 || 1 || 8651 || 03/03/1999
5 || 2 || 5 || 2555 || 03/09/1999
6 || 2 || 2 || 8562 || 03/18/1999
QUERY 1个结果
CAR_ID || CUSTOMER_ID || TYPE || SN || DATE
------- || ------------ || ------ || ----- || --------
1 || 1 || 5 |||| 02/06/1999
5 || 2 || 5 || 2555 || 03/09/1999
上述查询连接临时表“CUST1”与列上CUSTOMER_ID
和TYPE
实际的表“车”。 现在,我希望实现的是从属于客户的CARS中选择DATE AS DATE2和SN AS SN2,其中对于由JOIN条件产生的CUSTOMER_ID的CARS.TYPE = 2,其中 。
但是,由于CARS表非常大,我不想重新加入/使用子查询。 由于其他原因,请在代码的其余部分中使用,请忽略临时表方法。 当前列将是CUSTOMER_ID,而基于该CUSTOMER_ID的另外两列将是SN和TYPE。
预期结果
CAR_ID || CUSTOMER_ID || TYPE || SN || DATE || DATE2 || SN2
------- || ------------ || ------ || ----- || -------- || ------- || -----
1 || 1 || 5 |||| 02/06/1999 || 03/08/1999 || 2365
5 || 2 || 5 || 2555 || 03/09/1999 || 03/18/1999 || 8562
你确定'查询1'吗?语法不正确。 –
是的,将CUST1作为驱动表并将CARS1作为基于第一个查询的reults进行选择的查询。 –
因此,您基本上需要CARS中两行不同行的数据,但客户中的每一行都不需要多次加入CARS?这可能是一个问题... – Jerrad