Showing posts with label SQL. Show all posts
Showing posts with label SQL. Show all posts

10/31/2017

AMS : Export Database To SQLITE

AMS : Export Database To SQLITE
- PHPmyadmin
Query คำสั่ง
  1. SELECT CONCAT( FirstCode, AccountCode, TypeCode, SubTypeCode, RunNo ) AS AssetCode, AssetDetail, AssetRP, AssetReceive, AssetCost, EmpName, DepCode
  2. FROM `asset`
  3. LEFT JOIN sci._employees ON _employees.EmpID = Owner
  4. WHERE 1


- Export ข้อมูลที่ Query ได้จาก PHPMyAdmin
- เลือกชนิดเป็น CSV
- Fields terminated by : I (pipe)
- Fields enclosed by : ไม่ต้องมี
- Fields escaped by : \

- ใช้โปรแกรม Sqlite Manger หรือโปรแกรม อื่นๆ
- new Database
- สร้าง Table Code
  1. CREATE TABLE "asset_info" (
  2. "AssetCode" TEXT NOT NULL,
  3. "AssetDetail" TEXT,
  4. "AssetRP" TEXT,
  5. "AssetReceive" TEXT,
  6. "AssetCost" REAL,
  7. "Owner" TEXT,
  8. "DepCode" TEXT
  9. );


- import Table data ที่ได้จาก phpmyadmin สำเร็จ

หรือ ใช้ addon sqlite-manager ของ Firefox ก็สามารถทำได้
https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/


11/07/2016

SQL : Query to compare two subsets of data from the same table

SQL : Query to compare two subsets of data from the same table
วิธีเปรียบเทียบข้อมูล 2 แถวจากตารางเดียวกัน
ตัวอย่างฐานข้อมูลอัตราแลกเปลี่ยน :
  1. SELECT `fx_date`,`fx_round`,`fx_buy` FROM `fx` WHERE 1 ORDER  BY fx_date LIMIT 0,10

ข้อมูล :
+------------+----------+--------+
| fx_date | fx_round | fx_buy |
+------------+----------+--------+
| 2015-01-05 | 0 | 32.84 |
| 2015-01-05 | 1 | 32.85 |
| 2015-01-06 | 1 | 32.85 |
| 2015-01-06 | 0 | 32.77 |
| 2015-01-07 | 1 | 32.74 |
| 2015-01-07 | 0 | 32.77 |
| 2015-01-08 | 0 | 32.77 |
| 2015-01-08 | 1 | 32.74 |
| 2015-01-09 | 1 | 32.73 |
| 2015-01-09 | 0 | 32.78 |
+------------+----------+--------+

เปรียบเทียบรายการ :
  1. SELECT main.fx_date, round1.fx_buy AS r1, round2.fx_buy AS r2
  2.   FROM (SELECT DISTINCT fx_date FROM fx) AS main
  3.   LEFT JOIN fx AS round1 ON round1.fx_date = main.fx_date AND round1.fx_round = '0'
  4.   LEFT JOIN fx AS round2 ON round2.fx_date = main.fx_date AND round2.fx_round = '1'
  5. WHERE round1.fx_buy > round2.fx_buy


http://dba.stackexchange.com/questions/50773/query-to-compare-two-subsets-of-data-from-the-same-table

PHP : PHP SQLi มีปัญหา Query ค่าไม่ได้ เพราะไม่ได้ระบุ Table ให้กับ Code SQL

PHP : PHP SQLi มีปัญหา Query ค่าไม่ได้ เพราะไม่ได้ระบุ Table ให้กับ Code SQL
Set ให้ Show Error โดย
  1. mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
  1. echo $result;
  2. print_r($result);

ไม่มีค่าออก

แต่ echo $SQL แล้วนำไป Run ที่ phpmyadmin แล้วได้ค่า
เกิดจาก Classes ของ sqli ที่ใช้ติดต่อ ฐานข้อมูลมีปัญหาใช้งานไม่ได้ ต้องเขียน Code ติดต่อแบบตรง ๆ
Code:
  1.     $con=mysqli_connect("localhost","my_user","my_password","my_db");
  2. // Check connection
  3. if (mysqli_connect_errno())
  4.   {
  5.   echo "Failed to connect to MySQL: " . mysqli_connect_error();
  6.   }
  7.  
  8. $sql="SELECT Lastname,Age FROM Persons ORDER BY Lastname";
  9. $result=mysqli_query($con,$sql);
  10.  
  11. // Numeric array
  12. $row=mysqli_fetch_array($result,MYSQLI_NUM);
  13. printf ("%s (%s)\n",$row[0],$row[1]);
  14.  
  15. // Associative array
  16. $row=mysqli_fetch_array($result,MYSQLI_ASSOC);
  17. printf ("%s (%s)\n",$row["Lastname"],$row["Age"]);
  18.  
  19. // Free result set
  20. mysqli_free_result($result);
  21.  
  22. mysqli_close($con);
  23.  
  24.  


http://www.w3schools.com/php/func_mysqli_fetch_array.asp

หรือระบบ Table ให้กับคำสั่ง SQL
  1.     $SQL0 = "SELECT main.fx_date, round1.fx_buy AS r1, round2.fx_buy AS r2
  2.         FROM (SELECT DISTINCT fx_date FROM sci_fx.fx) AS main
  3.         LEFT JOIN sci_fx.fx AS round1 ON round1.fx_date = main.fx_date AND round1.fx_round = '0'
  4.         LEFT JOIN sci_fx.fx AS round2 ON round2.fx_date = main.fx_date AND round2.fx_round = '1'
  5.         WHERE round1.fx_buy > round2.fx_buy";
  6.  
  7.         $result = $mysqli->query($SQL0);
  8.         print_r($result);
  9.  
  10.         $rows = $result->fetch_assoc();
  11.         $fx_date = $rows["fx_date"];   
  12.  


ตัวอย่าง https://intranet.sci.com/sci/AF/fx_chart.php

11/06/2016

PHP :: Connection database another host very slow on ubuntu.

PHP :: Connection database another host very slow on ubuntu server

On the server we connect to.
1. Edit file my.cnf
  1. nano /etc/mysql/my.cnf

2. Adding the following line on [mysqld]
on the my.cnf file now looks like this:
  1. port = 3306
  2. socket = /tmp/mysql.sock
  3. skip-locking
  4. skip-name-resolve

3. restart mysql.
  1. /etc/init.d/mysql restart


Link:
https://bobbyallen.wordpress.com/2007/11/02/slow-connections-on-remote-mysql-servers/

8/21/2016

SQL : SQL Select Software Office On OCS.

SQL : SQL Select Software Office On OCS.

Code Run In Phpmyadmin.

[code=text]SELECT `hardware`.`ID` , `hardware`.`NAME`, `softwares`.`NAME`
FROM `hardware`
INNER JOIN `softwares` ON `hardware`.`ID` = `softwares`.`HARDWARE_ID`
WHERE `softwares`.`NAME` LIKE '%Microsoft Office%'
GROUP BY `hardware`.`NAME`[/code]

เพื่อเช็คว่า Office ติดตั้งตอนนี้มีกี่เครื่อง ชื่อเครื่อง อะไรบ้าง

7/24/2016

Bat Backup Database Axapta + Document + iXimple

Bat Backup Database Axapta + Document + iXimple
- Opent Notepad Save To .bat
- Run On Server Axapta.

Code
 
@echo off
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
For /f "tokens=1-2 delims=/:" %%a in ("%TIME%") do (set mytime=%%a%%b)
 
 
set database_name_2015=axdb_2015
set database_name_iXimple=iXimple
 
set backup_file_2015=x:\%database_name_2015%_%mydate%_%mytime%.bak
set backup_file_iXimple=x:\%database_name_iXimple%_%mydate%_%mytime%.bak
 
set list=W1 W2 W3 W4 W5 W6 W7 W8 W9 W10 W11 W12 W13 U1 U2 U3 U4 U5 U6 public
 
OSQL -H Axapta -U sa -P sciadminsql -Q "BACKUP DATABASE %database_name_2015% TO DISK = '%backup_file_2015%'"
OSQL -H Axapta -U sa -P sciadminsql -Q "BACKUP DATABASE %database_name_iXimple% TO DISK = '%backup_file_iXimple%'"
 
IF %ERRORLEVEL% EQU 0 (
    for %%S in (%list%) do (
        echo Checking box %%S
        if exist \\192.168.2.77\%%S\ (
            echo %%S found
 
        xcopy /y %backup_file_2015% \\192.168.2.77\%%S\
        IF %ERRORLEVEL% EQU 0 del %backup_file_2015%   
 
        xcopy /y %backup_file_iXimple% \\192.168.2.77\%%S\
        IF %ERRORLEVEL% EQU 0 del %backup_file_iXimple%
 
        C:\WINDOWS\system32\ntbackup.exe backup "@C:\Documents and Settings\Administrator\Local Settings\Application Data\Microsoft\Windows NT\NTBackup\data\BackUpAxaptaFile.bks" /n "Axapta_.bkf created 9/7/2558 at 9:11" /d "Set created 9/7/2558 at 9:11" /v:yes /r:no /rs:no /hc:off /m normal /j "BackUpAxaptaFile" /l:s /f "X:\Axapta_.bkf"
        IF %ERRORLEVEL% EQU 0 xcopy /y X:\Axapta_.bkf \\192.168.2.77\%%S\
        IF %ERRORLEVEL% EQU 0 del X:\Axapta_.bkf
        GOTO :THEEND
        ) else (
            echo  %%S NOT exist
        )
    )
)
:THEEND
 
 

6/04/2016

syslog ไม่สามารถเปิด Table all_logs ได้

เพราะมีการไปลบ table logs_วันที่ ใน phpmyadmin หรือ ใน /var/lib/mysql/syslog/ ออกไปจึงไม่สามารถนำ Table มารวมกันเป็น Table all_logs ได้
วิธีแก้
- ใช้คำสั่ง crontab -e เพื่อดูคำสั่งที่ใช้สร้าง all_logs ในบรรทัดแรก
- run คำสั่ง php /var/www/logzilla/scripts/logrotate.php โดยสิทธิ์ root เพื่อให้สร้าง table all_logs ขึ้นมาใหม่

3/13/2012

ฟังก์ชั่นตรวจสอบเงื่อนไขแบบ Switch

ฟังก์ชัน switch จะทำการตรวจสอบตัวแปรว่ามีค่าเท่ากับ case ใด ถ้าตรงกับ case ใดก็จะทำงาน
ตามประโยคคำสั่งของ case นั้น การเปรียบเทียบของฟังก์ชัน switch ไม่สามารถเปรียบเทียบค่ามากกว่า น้อยกว่า
เหมือนฟังก์ชัน if ได้ และที่สำคัญตัวแปรที่นำมาใช้กับฟังก์ชัน switch จะต้องเป็นข้อมูลชนิดเลขจำนวนเต็ม
หรือตัวอักษรเท่านั้น ดังนั้น a1, a2 และ a3 อาจจะเป็นค่าคงที่ ตัวอักษร หรือตัวแปรก็ได้ โดยทั่วไปฟังก์ชัน
switch นิยมใช้ในการตรวจสอบเงื่อนไข จำนวนหลาย ๆ เงื่อนไขเพราะถ้าใช้ฟังก์ชัน if จะทำให้เกิดความยุ่งยากได้

รูปแบบ switch(ตัวแปร)
{
case a1;
ประโยคคำสั่ง 1;
break;
case a2;
ประโยคคำสั่ง 2;
break;
case a3;
ประโยคคำสั่ง 3;
break;
default;
ประโยคคำสั่ง ;
}

9/28/2011

SQL : การนำ Path บันทึกเข้า PHPMyadmin

การบันทึก Path เข้า PHPMyadmin จะนำค่าที่ได้จาก Path บันทึกเข้าโดยตรงไม่ได้
เช่น
ต้องการบันทึก
\\server3\7C งทส\00-อื่น ๆ\Personal Data\สุวิทย์ จำปาหอม\ImageAMS\123.jpg
จะใช้ข้างบนเลยไม่ได้ข้อมูลที่เป็น \ จะไม่เข้า
ถ้าต้องการบันทึกต้อง ใช้ \ และค่าที่ต้องการเช่น \" คือบันทึกค่า " , \\ คือบันทึก \
ถ้าต้องการบันทึก Path ข้างบนก็ต้องใช้
\\\\server3\\7C งทส\\00-อื่น ๆ\\Personal Data\\สุวิทย์ จำปาหอม\\ImageAMS\\123.jpg

SQL : Select Concat เอาฟิวล์มาต่อกัน

SQL CONCAT 
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยทำการรวมข้อความเข้าด้วยกัน


Syntax


SELECT CONCAT(Culumn1,Culumn2,...) AS [New-Field] FROM [Table-Name]


Table : customer
CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachai win.weerachai@thaicreate.com
TH
1000000 600000
C002
John Smith john.smith@thaicreate.com
EN
2000000 800000
C003
Jame Born jame.born@thaicreate.com
US
3000000 600000
C004
Chalee Angel chalee.angel@thaicreate.com
US
4000000 100000


Sample1 การเลือกข้อมูลโดยทำการรวมฟิวด์ CustomerID,Name,Email

SELECT CustomerID,CONCAT(CustomerID,Name,Email) AS ConcatField FROM customer

Output

CustomerID
ConcatField
C001
C001Win Weerachaiwin.weerachai@thaicreate.com
C002
C002John Smithjohn.smith@thaicreate.com
C003
C003Jame Bornjame.smith@thaicreate.com
C004
C004Chalee Angelchalee.angel@thaicreate.com

9/12/2011

SQL : select data in mounth and order by date

เก็บข้อมูลของวันที่ในฐานข้อมูลในรูปแบบนี้  yyyy-mm-dd  (ปี-เดือน-วัน)

Format :
SELECT * FROM `Table` WHERE SUBSTR(field,6,2)='12' and field = 'Y'
Order by SUBSTR(field,9,2)


Example :
SELECT * FROM `_employees` WHERE SUBSTR(Birthday,6,2)='12' and isEnabled = 'Y'
Order by SUBSTR(Birthday,9,2)

6/25/2011

MSQL ค้นหาพนักงานที่ไม่เคยกู้เงินบริษัท

ไม่เคยกู้สั้น
 
SELECT EmpID,EmpName FROM sci._employees
WHERE EmpID NOT IN (SELECT EmpID FROM sci_loan.er_history)
AND EmpID NOT IN (SELECT EmpID FROM sci_loan.er_borrow)
AND isenabled = "Y"
ORDER BY LevelPriority DESC,EmpID 
 
 
ไม่เคยกู้ยาว

SELECT EmpID,EmpName FROM sci._employees
WHERE EmpID NOT IN (SELECT EmpID FROM sci_loan.long_history)
AND EmpID NOT IN (SELECT EmpID FROM sci_loan.long_borrow)
AND isenabled = "Y"
ORDER BY LevelPriority DESC,EmpID