如何为这种输出/问题创建mysql语法

时间:2019-06-11 09:59:40

标签: mysql sql

我在创建mysql脚本时遇到问题,我的表有三列。

LAN | TYPE | AMOUNT
1   | DR   | 100
1   | CR   | 200
2   | CR   | 200
3   | DR   | 500
3   | CR   | 700

我想要一个输出

LAN | CR_TYPE_AMOUNT | DR_TYPE_AMOUNT
1   | 200            |  100
2   | 200            |      
3   | 700            |  500

3 个答案:

答案 0 :(得分:1)

您可以将conditional aggregationcase when expression一起使用

select lan, 
       max(case when TYPE='CR' then amount end) as CR_TYPE_AMOUNT,
       max(case when TYPE='DR' then amount end) as DR_TYPE_AMOUNT
from tablename
group by lan

答案 1 :(得分:0)

您可以在同一张表上使用联接

const xmldom = require('xmldom');
const xpath = require('xpath');

var parser = new xmldom.DOMParser();
var serializer = new xmldom.XMLSerializer();

const xml = '<catalog><book id="bk101"><author>Gambardella, Matthew</author><title>XML Developer\'s Guide</title><genre>Computer</genre><price>44.95</price><publish_date>2000-10-01</publish_date><description>An in-depth look at creating applicationswith XML.</description></book><book id="bk102"><author>Ralls, Kim</author><title>Midnight Rain</title><genre>Fantasy</genre><price>5.95</price><publish_date>2000-12-16</publish_date><description>A former architect battles corporate zombies,an evil sorceress, and her own childhood to become queenof the world.</description></book><book id="bk103"><author>Corets, Eva</author><title>Maeve Ascendant</title><genre>Fantasy</genre><price>5.95</price><publish_date>2000-11-17</publish_date><description>After the collapse of a nanotechnologysociety in England, the young survivors lay thefoundation for a new society.</description></book><book id="bk104"><author>Corets, Eva</author><title>Oberon\'s Legacy</title><genre>Fantasy</genre><price>5.95</price><publish_date>2001-03-10</publish_date><description>In post-apocalypse England, the mysteriousagent known only as Oberon helps to create a new lifefor the inhabitants of London. Sequel to MaeveAscendant.</description></book><book id="bk105"><author>Corets, Eva</author><title>The Sundered Grail</title><genre>Fantasy</genre><price>5.95</price><publish_date>2001-09-10</publish_date><description>The two daughters of Maeve, half-sisters,battle one another for control of England. Sequel toOberon\'s Legacy.</description></book><book id="bk106"><author>Randall, Cynthia</author><title>Lover Birds</title><genre>Romance</genre><price>4.95</price><publish_date>2000-09-02</publish_date><description>When Carla meets Paul at an ornithologyconference, tempers fly as feathers get ruffled.</description></book><book id="bk107"><author>Thurman, Paula</author><title>Splish Splash</title><genre>Romance</genre><price>4.95</price><publish_date>2000-11-02</publish_date><description>A deep sea diver finds true love twentythousand leagues beneath the sea.</description></book><book id="bk108"><author>Knorr, Stefan</author><title>Creepy Crawlies</title><genre>Horror</genre><price>4.95</price><publish_date>2000-12-06</publish_date><description>An anthology of horror stories about roaches,centipedes, scorpionsand other insects.</description></book><book id="bk109"><author>Kress, Peter</author><title>Paradox Lost</title><genre>Science Fiction</genre><price>6.95</price><publish_date>2000-11-02</publish_date><description>After an inadvertant trip through a HeisenbergUncertainty Device, James Salway discovers the problemsof being quantum.</description></book><book id="bk110"><author>O\'Brien, Tim</author><title>Microsoft .NET: The Programming Bible</title><genre>Computer</genre><price>36.95</price><publish_date>2000-12-09</publish_date><description>Microsoft\'s .NET initiative is explored indetail in this deep programmer\'s reference.</description></book><book id="bk111"><author>O\'Brien, Tim</author><title>MSXML3: A Comprehensive Guide</title><genre>Computer</genre><price>36.95</price><publish_date>2000-12-01</publish_date><description>The Microsoft MSXML3 parser is covered indetail, with attention to XML DOM interfaces, XSLT processing,SAX and more.</description></book><book id="bk112"><author>Galos, Mike</author><title>Visual Studio 7: A Comprehensive Guide</title><genre>Computer</genre><price>49.95</price><publish_date>2001-04-16</publish_date><description>Microsoft Visual Studio 7 is explored in depth,looking at how Visual Basic, Visual C++, C#, and ASP+ areintegrated into a comprehensive developmentenvironment.</description></book></catalog>';

const root = parser.parseFromString(xml);
let selectedNodes = xpath.select('//book/author', root);

var newDoc = new xmldom.DOMParser().parseFromString("<test/>");
// Move nodes to new document..
selectedNodes.forEach(function (n) {
    newDoc.appendChild(n);
});

console.log("Processed Xml: ", serializer.serializeToString(newDoc));

答案 2 :(得分:0)

SQL如下:

 select
     coalesce(a.lan, b.lan) as LAN,
     a.amount as CR_TYPE_AMOUNT,
     b.amount as DR_TYPE_AMOUNT
 from
 (select lan, amount from my_table_1 where type='CR') a
 left join
 (select lan, amount from my_table_1 where type='DR') b on a.lan = b.lan ;
+------+----------------+----------------+
| LAN  | CR_TYPE_AMOUNT | DR_TYPE_AMOUNT |
+------+----------------+----------------+
|    1 |            200 |            100 |
|    2 |            200 |           NULL |
|    3 |            700 |            500 |
+------+----------------+----------------+
3 rows in set (0.00 sec)