0118開発ログ
今日やったこと
課題
1.出張情報を修正し、金額入力欄と合計に1000ビットカンマを追加
数値以外の入力、出力の部分に千桁のカンマを追加しました.ローカル通貨基準としてカンマ文字列を返す数値を受け入れる関数toLocaleString()
があるため、累積演算を行う際に文字列を数値に変換する必要があります.最初はそれを知らなかったのでinputにカンマを付けた瞬間にNaNを加算した理由がわかりませんでした
javascriptでは、文字列に*1を付けると数字に変換できます.$(document).ready(function () {
// 금액 합계 기능
function setTotalPrice() {
var total = 0;
$(".PRICE").each(function() {
total += $(this).val().replace(/\D/g,'') * 1;
});
// 합계 출력
$("#priceTotal").html(total.toLocaleString());
}
setTotalPrice();
// 금액 입력 시 숫자 아닌 것 지우고 합계 업데이트
$('.PRICE').keyup(function(e){
if (/\D/g.test(this.value)){
this.value = this.value.replace(/\D/g, '');
}
this.value = (this.value * 1).toLocaleString();
setTotalPrice();
});
});
2.金額が追加されているが支払方法が選択されていない検証
for (var i=0; i<4; i++) {
var input_price = document.getElementById("btExpVOList" + i + ".PRICE");
var select_payment = document.getElementById("btExpVOList" + i + ".PAYMENT_METHOD");
// 금액 비교를 위한 text -> int 형변환
input_price.value = input_price.value.replace(/\D/g,'') * 1;
// 금액 있는데 결제방법 선택 안한 경우 -> 리턴
if(input_price.value>0 && select_payment.value==999) {
// 다시 콤마 텍스트로 변환
input_price.value = (input_price.value * 1).toLocaleString();
alert("출장 비용 입력 시 결제방법을 반드시 선택해야 합니다.");
return;
}
// 금액 없는데 결제방법 선택된 경우 -> 결제방법 초기화
if(input_price.value==0 && select_payment.value!=999) {
select_payment.value=999;
}
// 콤마 포함한 text -> 콤마 제거 후 int 형변환
input_price.value = input_price.value.replace(/\D/g,'') * 1;
}
じょうほうしょりエンジニア
要求1、sql 1、2
その他
プログラマーsqlハイスコアスイートをすべて解読しました.問題の多くは簡単なレベルですが、たまに難しいこともあります.
簡単なSQL関数、ヒント
$(document).ready(function () {
// 금액 합계 기능
function setTotalPrice() {
var total = 0;
$(".PRICE").each(function() {
total += $(this).val().replace(/\D/g,'') * 1;
});
// 합계 출력
$("#priceTotal").html(total.toLocaleString());
}
setTotalPrice();
// 금액 입력 시 숫자 아닌 것 지우고 합계 업데이트
$('.PRICE').keyup(function(e){
if (/\D/g.test(this.value)){
this.value = this.value.replace(/\D/g, '');
}
this.value = (this.value * 1).toLocaleString();
setTotalPrice();
});
});
for (var i=0; i<4; i++) {
var input_price = document.getElementById("btExpVOList" + i + ".PRICE");
var select_payment = document.getElementById("btExpVOList" + i + ".PAYMENT_METHOD");
// 금액 비교를 위한 text -> int 형변환
input_price.value = input_price.value.replace(/\D/g,'') * 1;
// 금액 있는데 결제방법 선택 안한 경우 -> 리턴
if(input_price.value>0 && select_payment.value==999) {
// 다시 콤마 텍스트로 변환
input_price.value = (input_price.value * 1).toLocaleString();
alert("출장 비용 입력 시 결제방법을 반드시 선택해야 합니다.");
return;
}
// 금액 없는데 결제방법 선택된 경우 -> 결제방법 초기화
if(input_price.value==0 && select_payment.value!=999) {
select_payment.value=999;
}
// 콤마 포함한 text -> 콤마 제거 후 int 형변환
input_price.value = input_price.value.replace(/\D/g,'') * 1;
}
ISNULL(컬럼명, '대체값')
:カラムの値がNULLの場合は、出力として「代替値」を入力します.이름
「名前1、名前2、名前3、名前4、名前5」のいずれかの値を検索します.order by datediff(date1, date2) -> order by date1 - date2
date_format()
のみをインポートします.私は1つの関数left(10)
を思いつきました.上位10位のyyyy-mm-dd
だけをインポートすることもできます.WITH RECURSIVE
WITHを使用した仮想テーブルの作成
WITH 가상테이블명 AS (
SELECT 초기값 AS 컬럼명
UNION ALL
SELECT 쿼리
)
SELECT * FROM 가상테이블명;
WITHを使用して仮想テーブルを作成できます.WITH RECURSIVEを使用した自己参照の仮想テーブルの作成
WITH RECURSIVE 가상테이블명 AS (
SELECT 초기값 AS 컬럼명1
UNION ALL
SELECT 컬럼명1 계산식 FROM 가상테이블명 WHERE 조건
)
-- 재귀로 임시 테이블 생성해서 사용하기
WITH RECURSIVE PRACTICE AS
(
SELECT 1 AS IDX
UNION ALL
SELECT IDX+1 FROM PRACTICE WHERE IDX<13
)
SELECT CONCAT(IDX, '의 아해') AS NAME FROM PRACTICE;
Reference
この問題について(0118開発ログ), 我々は、より多くの情報をここで見つけました https://velog.io/@lee_yesol421/0118-개발일지テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol