MySQL에서 빼기의 부정적인 결과를 원하지 않습니다.

tawny_alexa

그래서 다음 코드가 있습니다.

CREATE TABLE dispenser(
    id_disp int not null auto_increment,
    location_disp varchar(20) not null,
    full_capacity int not null,
    primary key (id_disp)
);


CREATE TABLE records(
    time_stamp  DATETIME DEFAULT CURRENT_TIMESTAMP not null,
    id_dispenser int not null,
    nr_pumps int not null,
    primary key (id_dispenser,time_stamp)
);

CREATE VIEW left_capacity AS
    SELECT 
        max(time_stamp) AS 'calendar', 
        id_dispenser AS 'dispenser', 
        full_capacity AS 'capacity', 
        (full_capacity-(nr_pumps*3)) AS 'available'
    FROM records r, dispenser d
    WHERE r.id_dispenser=d.id_disp
    GROUP by id_dispenser
    ORDER by id_dispenser desc;

그리고 내 뷰 테이블에 문제가 있습니다. (full_capacity-(nr_pumps*3))왜냐하면 nr_pumps*3이보다 크면 full_capacity음수 사용 가능한 값 있기 때문 입니다. 계산 결과가 음수이면 값을 0으로 만들 수있는 방법이 있습니까?

끈적한 비트

사용할 수 있습니다 greatest(). 가장 큰 인수를 반환합니다.

CREATE VIEW left_capacity
AS
SELECT max(time_stamp) AS calendar,
       id_dispenser AS dispenser,
       full_capacity AS capacity,
       greatest(full_capacity - nr_pumps * 3, 0) AS available
       FROM records r
            INNER JOIN dispenser d
                       ON d.id_disp = r.id_dispenser
       GROUP by id_dispenser;

몇 가지 추가 참고 사항 :

  • 열 별칭과 같은 식별자를 작은 따옴표로 묶지 마십시오. SQL의 작은 따옴표는 문자열 또는 날짜 리터럴을 의미합니다. MySQL은 작은 따옴표로 된 별칭을 허용 할 수 있지만 다른 DBMS는 허용하지 않습니다. 그래서 그것에 익숙해지기 시작하지 마십시오.
  • JOIN에서 이전 쉼표로 구분 된 목록에 대해 명시 적 구문 을 사용하는 것이 좋습니다 FROM. 전자는 오류없이 작성하고 읽고 이해하기 쉽습니다.
  • GROUP BY사용하면 쿼리 형식이 잘못되었습니다. 선택한 열 목록의 모든 열이 GROUP BY절의 집계 함수에 대한 인수 이거나 절의 열에 완전히 기능적으로 종속되는 것은 아닙니다 GROUP BY. 슬프게도 이전 버전의 MySQL이나 잘못 구성된 버전은 해당 규칙을 적용하지 않습니다. 그러나 결과는 재미있을 수 있으므로 언젠가 깜짝 놀랄 준비를하십시오.
  • 여기서 MySQL이 예외인지 모르겠습니다. 그러나 일반적으로 ORDER BYin a view는 의미가 없습니다 ( LIMIT너무 관여 하지 않는 한 ). 가장 바깥 쪽 쿼리가를 사용하여 주문을 명시 적으로 정의하지 않는 한 ORDER BY, SQL 엔진은 일반적으로 임의의 순서로 결과를 반환 할 수 있으며 필요한 경우 수행합니다. 따라서 ORDER BY뷰에서 최적화 될 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

스크립트의 ls 명령이 화면에 결과를 인쇄하는 것을 원하지 않습니다.

분류에서Dev

빼기가 나에게 긍정적 인 결과를 준다 C ++

분류에서Dev

재귀 함수는 루프 내부에서 올바른 최종 결과를 인쇄하지만 외부에서는 정의되지 않습니다.

분류에서Dev

mysql의 Timediff가 결과를 반환하지 않습니다.

분류에서Dev

% in %는 원자 적 결과를 반환하지 않습니다.

분류에서Dev

Bash 정규식 테스트의 문자 클래스에서 빼기 기호와 문자 클래스 바로 가기를 결합하지 못했습니다.

분류에서Dev

Bash 정규식 테스트의 문자 클래스에서 빼기 기호와 문자 클래스 바로 가기를 결합하지 못했습니다.

분류에서Dev

하위 명령어 x86_64에서 부정적인 결과를 얻습니다.

분류에서Dev

코볼에 원하지 않는 결과를주는 두 개의 정수 추가

분류에서Dev

MySQL은 하위 쿼리 결과와 비교할 때 기본 인덱스를 사용하지 않습니다.

분류에서Dev

내부 조인은 SQL Server에서 행 번호와 함께 원하지 않는 결과를 제공합니다.

분류에서Dev

최종 결과에서 정의되지 않은 결과를 반환하지만 axios 요청에서 결과를 반환합니다.

분류에서Dev

DROPMALFORMED가 Apache Spark에서 적절한 결과를 반환하지 않습니다.

분류에서Dev

추상 클래스를 상속 할 때 왜 실행 결과가 기대에 부응하지 않습니다

분류에서Dev

타임 스탬프를 사용한 정수 및 정수 배열의 더하기 / 빼기가 더 이상 지원되지 않습니다. `n`을 더하거나 빼는 대신`n * obj.freq`를 사용하세요.

분류에서Dev

codeigniter 모델은 limt에 정의 된대로 결과를 반환하지 않습니다.

분류에서Dev

MySQL에서 테이블을 조인하여 몇 가지 기준에 따라 하나의 부울 결과를 얻을 수 있습니까?

분류에서Dev

경고 : 서버의 신원 확인없이 SSL 연결을 설정하지 않는 것이 좋습니다

분류에서Dev

RDD 빼기가 사용자 정의 유형에 대해 작동하지 않습니다.

분류에서Dev

Pandas Dataframe을 필터링하기 위해 float를 쿼리하면 'str'과 'float'의 인스턴스 간에는 '>'가 지원되지 않습니다.

분류에서Dev

MySQL이 시간 요소없이 두 날짜 사이의 결과를 검색하면 정확한 날짜의 결과가 출력되지 않습니다.

분류에서Dev

반응성 봄 REST 엔드 포인트에서 매개 변수로 HttpServletRequest의를 지원하지 않습니다?

분류에서Dev

ps는 특정 버전의 Linux에서 -x 플래그를 지원하지 않습니다.

분류에서Dev

HERE지도 자동 제안이 오프라인 상태에서 다운로드 한지도 패키지의 예상 결과를 반환하지 않습니다.

분류에서Dev

OpenCV 3.4 : CPU와 CUDA의 크기 조정 결과가 C ++에서 일치하지 않습니다.

분류에서Dev

GetHashCode를 기반으로 Equals를 사용하는 데 부정적인 결과가 있습니까?

분류에서Dev

GetHashCode를 기반으로 Equals를 사용하면 부정적인 결과가 있습니까?

분류에서Dev

레일의 루비 mysql은 결과를 반환하지 않습니다.

분류에서Dev

"다음 기능을 지원하는 클래스에서 결과를 얻고 싶습니다 ...."

Related 관련 기사

  1. 1

    스크립트의 ls 명령이 화면에 결과를 인쇄하는 것을 원하지 않습니다.

  2. 2

    빼기가 나에게 긍정적 인 결과를 준다 C ++

  3. 3

    재귀 함수는 루프 내부에서 올바른 최종 결과를 인쇄하지만 외부에서는 정의되지 않습니다.

  4. 4

    mysql의 Timediff가 결과를 반환하지 않습니다.

  5. 5

    % in %는 원자 적 결과를 반환하지 않습니다.

  6. 6

    Bash 정규식 테스트의 문자 클래스에서 빼기 기호와 문자 클래스 바로 가기를 결합하지 못했습니다.

  7. 7

    Bash 정규식 테스트의 문자 클래스에서 빼기 기호와 문자 클래스 바로 가기를 결합하지 못했습니다.

  8. 8

    하위 명령어 x86_64에서 부정적인 결과를 얻습니다.

  9. 9

    코볼에 원하지 않는 결과를주는 두 개의 정수 추가

  10. 10

    MySQL은 하위 쿼리 결과와 비교할 때 기본 인덱스를 사용하지 않습니다.

  11. 11

    내부 조인은 SQL Server에서 행 번호와 함께 원하지 않는 결과를 제공합니다.

  12. 12

    최종 결과에서 정의되지 않은 결과를 반환하지만 axios 요청에서 결과를 반환합니다.

  13. 13

    DROPMALFORMED가 Apache Spark에서 적절한 결과를 반환하지 않습니다.

  14. 14

    추상 클래스를 상속 할 때 왜 실행 결과가 기대에 부응하지 않습니다

  15. 15

    타임 스탬프를 사용한 정수 및 정수 배열의 더하기 / 빼기가 더 이상 지원되지 않습니다. `n`을 더하거나 빼는 대신`n * obj.freq`를 사용하세요.

  16. 16

    codeigniter 모델은 limt에 정의 된대로 결과를 반환하지 않습니다.

  17. 17

    MySQL에서 테이블을 조인하여 몇 가지 기준에 따라 하나의 부울 결과를 얻을 수 있습니까?

  18. 18

    경고 : 서버의 신원 확인없이 SSL 연결을 설정하지 않는 것이 좋습니다

  19. 19

    RDD 빼기가 사용자 정의 유형에 대해 작동하지 않습니다.

  20. 20

    Pandas Dataframe을 필터링하기 위해 float를 쿼리하면 'str'과 'float'의 인스턴스 간에는 '>'가 지원되지 않습니다.

  21. 21

    MySQL이 시간 요소없이 두 날짜 사이의 결과를 검색하면 정확한 날짜의 결과가 출력되지 않습니다.

  22. 22

    반응성 봄 REST 엔드 포인트에서 매개 변수로 HttpServletRequest의를 지원하지 않습니다?

  23. 23

    ps는 특정 버전의 Linux에서 -x 플래그를 지원하지 않습니다.

  24. 24

    HERE지도 자동 제안이 오프라인 상태에서 다운로드 한지도 패키지의 예상 결과를 반환하지 않습니다.

  25. 25

    OpenCV 3.4 : CPU와 CUDA의 크기 조정 결과가 C ++에서 일치하지 않습니다.

  26. 26

    GetHashCode를 기반으로 Equals를 사용하는 데 부정적인 결과가 있습니까?

  27. 27

    GetHashCode를 기반으로 Equals를 사용하면 부정적인 결과가 있습니까?

  28. 28

    레일의 루비 mysql은 결과를 반환하지 않습니다.

  29. 29

    "다음 기능을 지원하는 클래스에서 결과를 얻고 싶습니다 ...."

뜨겁다태그

보관