Как получить счет из базы данных (таблицы) и ссылку на страницу jsp? - PullRequest
1 голос
/ 14 марта 2020

Я создал 3 поля, представляющих «Забронировано», «Продано» и «Отменено». Теперь я хочу узнать, сколько людей было забронировано, продано и отменено, и положить число в коробки. Вот мой jsp код:

 <table class = "btn1" align = "center"> 
<tr>
<th><button class = "book" onclick ="filterSelection('Booked')">Booked</button><% %></th>
<th><button class = "sold" onclick ="filterSelection('Sold')"> Sold </button></th>
<th><button class = "cancel" onclick ="filterSelection('Cancelled')"> Cancelled </button></th>
</tr>
</table>
</div>

И mysql:

public String getStatus2 (String co_no, String projCde, String solcCde, String phaseNum, Date cur_date) throws SQLException {
System.out.println("/*** Lot Status **");
String status1="";
     String sql5= "SELECT\r\n" + 
            "    COUNT(CASE WHEN smu_sts_cde = 'B' THEN 1 END) AS booked_cnt,\r\n" + 
            "    COUNT(CASE WHEN smu_sts_cde = 'S' THEN 1 END) AS sold_cnt,\r\n" + 
            "    COUNT(CASE WHEN smu_sts_cde = 'C' THEN 1 END) AS cancelled_cnt\r\n" + 
            "FROM smpurl\r\n" 
            +"WHERE\r\n" 
            +"    smu__book_dte <=  '"+cur_date+"'"  
            +"    smu_proj_cde = '"+projCde+"'" 
            +"    smu_phase_num = '"+phaseNum+"'" 
            +"    smu_buyr_solc_cde = '"+solcCde+"'";
     String lotCde = super.execStr(sql5,false);
     System.out.println("Execute = " +sql5);
     System.out.println("Execute = " +lotCde);
     if(lotCde != "") {
         String sql6 = "SELECT count(*) FROM smpurl"
                    + " WHERE smu_sts_cde = '"+lotCde+"'"; 
         System.out.println("Execute = " + sql6);
         String lotNme = super.execStr(sql6,false);
         status1 = lotNme;
     }else {
         status1 = "BOOKED";
        }

Как я могу получить номер внутри моей jsp страницы?

1 Ответ

1 голос
/ 14 марта 2020

Для частичного ответа, охватывающего ваше требование MySQL, вы должны использовать условное агрегирование здесь:

SELECT
    COUNT(CASE WHEN smu_sts_cde = 'B' THEN 1 END) AS booked_cnt,
    COUNT(CASE WHEN smu_sts_cde = 'S' THEN 1 END) AS sold_cnt,
    COUNT(CASE WHEN smu_sts_cde = 'C' THEN 1 END) AS cancelled_cnt
FROM smpurl
WHERE
    smu__book_dte <= ? AND
    smu_proj_cde = ?   AND
    smu_phase_num = ?  AND
    smu_buyr_solc_cde = ?;

Заполнители ? представляют собой различные значения динамических c, которые вы хотите использовать используйте в предложении WHERE. В идеале вы должны использовать какое-то подготовленное заявление. Различные значения будут доступны с использованием псевдонимов, которые я для них определил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...