SQL CASE SELECT INSERT

时间:2014-08-21 02:45:18

标签: mysql sql sql-server

HI伙计们我有一个问题......

我有一张桌子

Name    Country         Date
abc     Singapore       1/1/1111
cde     Korea           1/1/1111
fgh     Korea           1/1/1111
ijk     Singapore       1/1/1111
mno     Singapore       1/1/1111
pqr     Singapore       2/1/1111
stuv    Korea           2/1/1111
wxy     Korea           2/1/1111
z       Korea           2/1/1111

我希望它像这样出来

Country     Date(1/1/1111    Date2 (2/1/1111
Singapore   3                1
Korea       2                3

请注意。日期和日期2其中一个或两个都可以是临时列

我试过

SELECT  Country, Count(Country) AS Quantity , 'Date1' As Expr1 
FROM Reg
WHERE Date= #6/16/2014#
GROUP BY Country;

但至于那部分我试过套管但它似乎工作...

SELECT Reg.Date, Reg.Country, Reg.Date1 
CASE Date
    WHEN (((Reg.Date)=#6/16/2014#)) THEN Reg.Date1 = #6/16/2014#
END

请帮忙!!! MS ACCESS

1 个答案:

答案 0 :(得分:1)

我注意到您使用“MySQL”和“SQL-Server”标记了帖子,但随后在文本中引用了MS Access。您实际上使用哪个数据库系统?你如何实现这样的东西很大程度上取决于数据库系统,因为在SQL标准中没有它的共同支持。那说:

  1. 如果您使用的是MS Access,那么您需要一个“交叉表”查询(只需谷歌它;已经有大量的方法文章)
  2. 如果您使用的是SQL Server,那么您需要一个“数据透视”查询(再次只是Google)
  3. 如果你使用的是MySQL,那么AFAIK你必须使用类似于此处概述的方法来推销自己:http://stratosprovatopoulos.com/web-development/mysql/pivot-a-table-in-mysql/
  4. 祝你好运!