Redian新闻
>
看了上面,我也来说说俺当年没答出的面试题。
avatar
看了上面,我也来说说俺当年没答出的面试题。# Database - 数据库
B*g
1
和sql3差不多, 除了month还有year,sql没答出来,用plsql作的,结果工资少了
一万.
(***应该可以假设(year,month,product_id) unique***, 不过最好别这样假设)
YEAR, MONTH, PRODUCT_ID, PRODUCT_QTY
2007, 1, 1, 2
2007, 1, 2, 3
2007, 2, 1, 2
2007, 2, 2, 3
2007, 3, 1, 2
2007, 3, 2, 3
......
Need:
YEAR, PRODUCT_ID, QUATER1_QTY,QUATER2_QTY,QUATER3_QTY, QUATER4_QTY
......
NND, 第一次竟然发错了, 现在应该改好了
avatar
b*e
2
SELECT [YEAR], PRODUCT_ID,
SUM(
Case
WHEN MONTH IN (1,2,3) THEN PRODUCT_QTY
ELSE 0
END
) as QUATER1_QTY,
SUM(
Case
WHEN MONTH IN (1,2,3) THEN PRODUCT_QTY
ELSE 0
END
) as QUATER1_QTY,
SUM(
Case
WHEN MONTH IN (4,5,6) THEN PRODUCT_QTY
ELSE 0
END
) as QUATER2_QTY,
SUM(
Case
WHEN MONTH IN (7,8,9) THEN PRODUCT_QTY
ELSE 0
avatar
B*g
3
zan. 想想俺当年太面了。
再延伸一步,每个P_ID,每年都要有显示。当年没有,要求显示year, id,0,0,0,0。

【在 b*****e 的大作中提到】
: SELECT [YEAR], PRODUCT_ID,
: SUM(
: Case
: WHEN MONTH IN (1,2,3) THEN PRODUCT_QTY
: ELSE 0
: END
: ) as QUATER1_QTY,
: SUM(
: Case
: WHEN MONTH IN (1,2,3) THEN PRODUCT_QTY

avatar
b*e
4
In SQL server, we can use cross join.
SELECT b.[YEAR], b.PRODUCT_ID,
SUM(
Case
WHEN MONTH IN (1,2,3) THEN PRODUCT_QTY
ELSE 0
END
) as QUATER1_QTY,
...
SUM(
Case
WHEN MONTH IN (10,11,12) THEN PRODUCT_QTY
ELSE 0
END
) as QUATER4_QTY
FROM Table a
RIGHT JOIN (
SELECT DISTINCT t2.[Year],t1.PRODUCT_ID FROM Table t1
Cross JOIN (SELECT DISTINCT [Year] FROM table) t2
) b
ON a.[Year]=b.[Year]
a.
avatar
B*g
5
以后你就在这儿站岗答疑吧。

【在 b*****e 的大作中提到】
: In SQL server, we can use cross join.
: SELECT b.[YEAR], b.PRODUCT_ID,
: SUM(
: Case
: WHEN MONTH IN (1,2,3) THEN PRODUCT_QTY
: ELSE 0
: END
: ) as QUATER1_QTY,
: ...
: SUM(

avatar
b*e
6
Ban Men Nong Fu.
I just want to learn something from this board, and share what I know.
avatar
g*a
7
sum 可以加条件啊, 学了一招
avatar
c*d
8
其实就是先加条件,后sum

【在 g*****a 的大作中提到】
: sum 可以加条件啊, 学了一招
avatar
B*g
9
顶。

【在 c*****d 的大作中提到】
: 其实就是先加条件,后sum
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。