어떤 이유로이 작업을 수행해야합니다. 언젠가 (위 같은)다중 행을 하나의 행 - 다중 열로 변경
limit usage tariff total
0 10 10 700 7000
11 20 10 900 9000
21 30 10 1800 18000
31 > 11 2700 29700
쿼리 반환 4 행의 최대하거나 3 행 : 나는 다음과 같은 결과를 한 쿼리가 있습니다. 쿼리 반환 불과 3 행, 열 limit4의 값이 될 때까지를 total4가 비어있는 경우
limit1 usage1 tariff1 total1 limit2 usage2 tariff2 total2
0 10 10 700 7000 11 20 10 900 9000
limit3 usage3 tariff3 total3 limit4 usage4 tariff4 total4
21 30 10 1800 18000 31 > 11 2700 29700
: 는이 같은 하나의 행과 다중 열 (한 행 아래 목록)에 행을 변경하려면 . 나는 그렇게하는 법을 모른다.
EDITED
목록이 될 것입니다 그래서 하나의 ID 열을 추가 :
ID limit usage tariff total
1 0 10 10 700 7000
2 11 20 10 900 9000
3 21 30 10 1800 18000
4 31 > 11 2700 29700
나는 이런 식으로 하나 개의 행을 만들려고 :
SELECT e.*,f.id AS id4,f.limit AS limit4,f.usage AS usage4,f.tariff AS tariff4,f.total AS total4
FROM
(SELECT c.*,d.id AS id3,d.limit AS limit3,d.usage AS usage3,d.tariff AS tariff3,d.total AS total3
FROM
(SELECT b.id AS id1,b.limit AS limit1,b.usage AS usage1,b.tariff AS tariff1,b.total AS total1,
a.id AS id2,a.limit AS limit2,a.usage AS usage2,a.tariff AS tariff2,a.total AS total2
FROM testtariff a
INNER JOIN testtariff b ON a.id!=b.id
LIMIT 1) c INNER JOIN testtariff d ON c.id1 != d.id AND c.id2 != d.id
LIMIT 1) e INNER JOIN testtariff f ON e.id1 != f.id AND e.id2 != f.id
AND e.id3 != f.id
LIMIT 1
가 나는대로 작동 4 행은 예상되지만 3 행은 작동하지 않습니다. 커서를 사용해야합니까?
특정 방식으로 출력 형식을 지정하는 것은 데이터베이스가 아닌 데이터베이스와 통신하는 응용 프로그램의 작업입니다. –
안녕 댄, 실제로 MySQL의 저장 프로 시저에서 출력 목록과 하나의 행을 수락하는 다른 저장 프로 시저를 피드 것입니다. – advcha