내 질문을 중복으로 찾을 수는 있지만 그 중 하나에서 내 대답을 얻지 못했거나 쿼리를 만들 수 없었습니다.MySQL은 하나의 열 데이터를 두 개의 열로 나눕니다.
다음과 같은 표가 있습니다.
---------------------------------------------------------------------------------
| Customer Name | Date | Product Name | Qty | Rate | Amount |
---------------------------------------------------------------------------------
| Customer1 | 10/10/2014 | Product1 | 10 | 100.00 | 1000.00 |
| Customer1 | 12/10/2014 | Product1 | 1 | 0.00 | 0.00 |
| Customer2 | 14/10/2014 | Product1 | 10 | 100.00 | 1000.00 |
| Customer1 | 16/10/2014 | Product1 | 10 | 100.00 | 1000.00 |
| Customer2 | 16/10/2014 | Product2 | 10 | 100.00 | 1000.00 |
| Customer2 | 16/10/2014 | Product2 | 1 | 0.00 | 0.00 |
| Customer1 | 20/10/2014 | Product2 | 20 | 150.00 | 1500.00 |
---------------------------------------------------------------------------------
제가
---------------------------------------------------------
| Customer Name | Product Name | Qty | Free |
---------------------------------------------------------
| Customer1 | Product1 | 20 | 1 |
| Customer1 | Product2 | 20 | 0 |
| Customer2 | Product1 | 10 | 0 |
| Customer2 | Product2 | 10 | 1 |
---------------------------------------------------------
그것은 분할에게 기간에 Rate
/Amount
에 기초 둘로 Qty
칼럼 살균제 아래와 같은 결과를 보여주고 싶다.
제 프로그램에서는 무료 수량을 0.00
속도로 저장합니다.
많은 프로세스를보고 시도했지만 실패했습니다.
내 SQL
쿼리는 아래와 같습니다.
SELECT CustomerName,ProductName,SUM(Qty), CASE WHEN Rate > 0 AND Amount > 0, CASE WHEN Rate < 1 AND Amount < 1 FROM salesdetails WHERE InvoiceDate BETWEEN '02/11/2014' AND '13/11/2014' GROUP BY ProductId, SoldTo ORDER BY CustomerName ASC
그러나 오류를 보이고있다. 내가 시도
... 나는이 작업을 수행하는 쿼리를 작성했기 때문에SELECT CustomerName,ProductName,SUM(Qty) FROM salesdetails WHERE InvoiceDate BETWEEN '" & dtt & "' AND '" & dtf & "' AND Rate > 0 AND Amount > 0 GROUP BY ProductId, CustomerName ORDER BY CustomerName ASC
그것은 자유 양 (비율 = 0) 생략 하나의 열 (SUM(Qty)
)의 기록을 보이고있다.
검색어는 무엇이되어야합니까?
이 문제를 해결하는 데 도움을주십시오.
감사
을들 :'를 invoiceDate/2014 '와 '13/11/2014'' Shouldn't 11/02 BETWEEN하면이 수'를 invoiceDate BETWEEN을 '02/10/2014 '및 '13/11/2014'? 그렇지 않으면 레코드가 표시되지 않습니다. –