由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - 请教大虾问题哈,包子谢哈
相关主题
请教set和select 的区别一个有关查询的语句
问个SQL问题- partial outer joinHow to Import a Datatable as fast as possible?
怎样快速得到两个表的交集问个JOIN的问题
how to write this query菜鸟问题,急
请问个join的问题SQL 查询已经解决.谢谢Modeler,mirthc,cheungche
SQL combine two tables into one table and add a new columnmysql 问题 (转载)
新手请教SQL 语法问题- alias 和 join请教高手,包子谢
sql数据库实时更新问题请求SQL语句
相关话题的讨论汇总
话题: status话题: select话题: product话题: join话题: group
进入Database版参与讨论
1 (共1页)
m**********2
发帖数: 2252
1
有如下的query,但是count=0的status不会被显示。我怎样才能得让count=0的status
也显示呢?有table2列出了全部的status。不知道怎样用isnull。SQL server。谢谢帮
忙。。。
SELECT product, [Status],COUNT(*) AS StatusCnt FROM table1
GROUP BY product,[Status]
ORDER BY product,[Status]
B*****g
发帖数: 34098
2
看见包子我就来了,可惜题没看懂。
不过我猜下面的link有点用
http://www.w3schools.com/Sql/sql_join.asp

status

【在 m**********2 的大作中提到】
: 有如下的query,但是count=0的status不会被显示。我怎样才能得让count=0的status
: 也显示呢?有table2列出了全部的status。不知道怎样用isnull。SQL server。谢谢帮
: 忙。。。
: SELECT product, [Status],COUNT(*) AS StatusCnt FROM table1
: GROUP BY product,[Status]
: ORDER BY product,[Status]

m**********2
发帖数: 2252
3
谢谢你哈。我可能说的不是很清楚哈。不过我用了excel的pivot table,pivotchart
report把问题搞定了。我想我可能要create一个 new table, includes all code for
product,status,然后 right/left join,用isnull。

【在 B*****g 的大作中提到】
: 看见包子我就来了,可惜题没看懂。
: 不过我猜下面的link有点用
: http://www.w3schools.com/Sql/sql_join.asp
:
: status

c*****d
发帖数: 6045
4
终于看懂问啥呢
建一个新表,包含所有的status
然后
select product, [Status],COUNT(*) AS StatusCnt
from orders o right join order_status s
on o.[Status]=s.[Status]
where product is not null and [Status] is not null
group by product, [Status]
c*****t
发帖数: 1879
5
我觉得可以用你之前的 query,union 一下 product, status, 0,然后 group by
然后 max 第三 column 。

for

【在 m**********2 的大作中提到】
: 谢谢你哈。我可能说的不是很清楚哈。不过我用了excel的pivot table,pivotchart
: report把问题搞定了。我想我可能要create一个 new table, includes all code for
: product,status,然后 right/left join,用isnull。

j*****n
发帖数: 1781
6
A little complex job... worth 2 baozi ha :)
Table1: Product, Status
Table2: Status -- I assume that this is the ref table with list of all
status, right?
What you will lean from it:
Sub-queries
CASE statement
SUM function
RIGHT JOIN
CROSS JOIN
IS NULL
Lets begin...
SELECT A.Product, A.Status, SUM(A.Cnt) AS StatusCnt
FROM (
SELECT CASE
WHEN A1.Product IS NULL THEN 0
ELSE 1
END AS Cnt,
B1.Product,
B1.Status
FROM table1 A1
RIGHT JOIN (
SE
B*****g
发帖数: 34098
7
你和我差不多,正在冥思苦想更好的。

【在 j*****n 的大作中提到】
: A little complex job... worth 2 baozi ha :)
: Table1: Product, Status
: Table2: Status -- I assume that this is the ref table with list of all
: status, right?
: What you will lean from it:
: Sub-queries
: CASE statement
: SUM function
: RIGHT JOIN
: CROSS JOIN

j*****n
发帖数: 1781
8
嗯,我一般喜欢先把逻辑整清楚了,再考虑performance.
拭目以待你的方法...

【在 B*****g 的大作中提到】
: 你和我差不多,正在冥思苦想更好的。
m**********2
发帖数: 2252
9
好吧,2个包子吧....
不过我很快就会破产了....哎.....

【在 j*****n 的大作中提到】
: A little complex job... worth 2 baozi ha :)
: Table1: Product, Status
: Table2: Status -- I assume that this is the ref table with list of all
: status, right?
: What you will lean from it:
: Sub-queries
: CASE statement
: SUM function
: RIGHT JOIN
: CROSS JOIN

m**********2
发帖数: 2252
10
明天回公司试试...有bug的话,要负责哈.....

【在 j*****n 的大作中提到】
: A little complex job... worth 2 baozi ha :)
: Table1: Product, Status
: Table2: Status -- I assume that this is the ref table with list of all
: status, right?
: What you will lean from it:
: Sub-queries
: CASE statement
: SUM function
: RIGHT JOIN
: CROSS JOIN

相关主题
SQL combine two tables into one table and add a new column一个有关查询的语句
新手请教SQL 语法问题- alias 和 joinHow to Import a Datatable as fast as possible?
sql数据库实时更新问题问个JOIN的问题
进入Database版参与讨论
j*****n
发帖数: 1781
11
aha? ok... 12hrs warranty... start counting now... ^L^

【在 m**********2 的大作中提到】
: 明天回公司试试...有bug的话,要负责哈.....
m**********2
发帖数: 2252
12
already running for 9 minutes, still waiting....seems that it will running
forever and no result back ya....

【在 j*****n 的大作中提到】
: aha? ok... 12hrs warranty... start counting now... ^L^
m**********2
发帖数: 2252
13
嗯。。。不准备再等了。。。20分钟没有结果。。。
那2个包子就当我的credit吧。。。暂时先放你那里吧。。。

【在 m**********2 的大作中提到】
: already running for 9 minutes, still waiting....seems that it will running
: forever and no result back ya....

m**********2
发帖数: 2252
14
嗯。。稍微改了一下,OK啦。。
SELECT A.Product, A.Status, SUM(A.Cnt) AS StatusCnt
FROM (
SELECT CASE
WHEN A1.Product IS NULL THEN 0
ELSE 1
END AS Cnt,
B1.Product,
B1.Status
FROM tbl1 A1 RIGHT JOIN
(SELECT A2.Product, B2.Status
FROM (
(SELECT DISTINCT product FROM tbl1) A2
CROSS JOIN (SELECT DISTINCT status FROM tbl2) B2))B1 ON A1.Product = B1.
Product AND A1.Status = B1.Status) A
GROUP BY A.Product, A.Status
ORDER BY A.Product, A.Status

【在 m**********2 的大作中提到】
: 嗯。。。不准备再等了。。。20分钟没有结果。。。
: 那2个包子就当我的credit吧。。。暂时先放你那里吧。。。

B*****g
发帖数: 34098
15
Try this one?
SELECT a.Product,
b.Status,
SUM(CASE WHEN a.Status = b.Status THEN
1
ELSE
0
END) AS Cnt
FROM table1 a CROSS JOIN table2 b
GROUP BY a.Product, b.Status

【在 m**********2 的大作中提到】
: 嗯。。稍微改了一下,OK啦。。
: SELECT A.Product, A.Status, SUM(A.Cnt) AS StatusCnt
: FROM (
: SELECT CASE
: WHEN A1.Product IS NULL THEN 0
: ELSE 1
: END AS Cnt,
: B1.Product,
: B1.Status
: FROM tbl1 A1 RIGHT JOIN

m**********2
发帖数: 2252
16
good....work!!!

【在 B*****g 的大作中提到】
: Try this one?
: SELECT a.Product,
: b.Status,
: SUM(CASE WHEN a.Status = b.Status THEN
: 1
: ELSE
: 0
: END) AS Cnt
: FROM table1 a CROSS JOIN table2 b
: GROUP BY a.Product, b.Status

c*****d
发帖数: 6045
17
how about my SQL? does it work?

【在 m**********2 的大作中提到】
: good....work!!!
1 (共1页)
进入Database版参与讨论
相关主题
请求SQL语句请问个join的问题
问个 sp_send_dbmail 的问题SQL combine two tables into one table and add a new column
请教个SQL问题新手请教SQL 语法问题- alias 和 join
数据库查询一个小问题sql数据库实时更新问题
请教set和select 的区别一个有关查询的语句
问个SQL问题- partial outer joinHow to Import a Datatable as fast as possible?
怎样快速得到两个表的交集问个JOIN的问题
how to write this query菜鸟问题,急
相关话题的讨论汇总
话题: status话题: select话题: product话题: join话题: group