2016-05-18 4 views
0

Hallo an alle Guten Tag,anzeigen Eine weitere Daten aus anderen Feld, wenn die Daten leer ist

Ich habe 5 Felder in MySQL und es gibt:

ItemCode 
Description 
OrderQty 
ApprovedQty 
UoM 
UnitPrice 
Total 

ich es mit richtigen Worten erklären kann nicht, aber ich hoffe, Sie werden es verstehen, indem Sie mir den Tisch zeigen lassen.

_______________________________________________________________ 
|ItemCode|Description|OrderQty|ApprovedQty|UOM|UnitPrice|Total| 
--------------------------------------------------------------- 
|12345678|Ketchup |12.00 |0.00  |PC |1.00  |12.00| 
|67891111|Soy Sauce |0.00 |12.00  |PC |1.00  |12.00| 
--------------------------------------------------------------- 

Jetzt sehen Sie es, ich hoffe, Sie können es jetzt verstehen. Hier ist meine Frage, ich habe einen Code, der die oben genannten Daten in eine Datagridview überträgt, aber es gibt eine Wendung und diese Wendung ist die Frage.

Hier ist sie:

Wie kann ich die Daten wie diese anzeigen; Wenn ApprovedQty 0.00 ist, werden die Daten in der OrderQty angezeigt, aber wenn ApprovedQty nicht 0.00 ist, unabhängig davon, welche Daten in der OrderQty enthalten sind, wird die ApprovedQty Show angezeigt.

So etwas wie das.

Basierend auf der obigen Tabelle

___________________________________________________ 
|ItemCode|Description|OrderQty|UOM|UnitPrice|Total| 
--------------------------------------------------- 
|12345678|Ketchup |12.00 |PC |1.00  |12.00| 
|67891111|Soy Sauce |12.00 |PC |1.00  |12.00| 
--------------------------------------------------- 

Hier ist mein Code, aber es zeigt nur die genehmigte Menge

Private Sub loadfinalpurch1() 
     Dim con1 As MySqlConnection = New MySqlConnection("server=localhost;userid=root;password=admin1950;database=inventory") 
     Dim sql1 As MySqlCommand = New MySqlCommand("Select ItemCode,Description,ApprovedQty,UoM,UnitPrice,Total from final_purch where PRnumber = '" & Label2.Text & "' and Added is NULL OR Added ='';", con1) 
     Dim ds1 As DataSet = New DataSet 
     Dim adapter1 As MySqlDataAdapter = New MySqlDataAdapter 
     con1.Open() 
     adapter1.SelectCommand = sql1 
     adapter1.Fill(ds1, "MyTable") 
     DataGridView1.DataSource = ds1.Tables(0) 
     con1.Close() 
     With DataGridView1 
      .RowHeadersVisible = False 
      .Columns(0).HeaderCell.Value = "Item Code" 
      .Columns(1).HeaderCell.Value = "Description" 
      .Columns(2).HeaderCell.Value = "Order Qty" 
      .Columns(3).HeaderCell.Value = "UOM" 
      .Columns(4).HeaderCell.Value = "Unit Price" 
      .Columns(5).HeaderCell.Value = "Total Amount" 
     End With 
     DataGridView1.Columns.Item(0).Width = 90 
     DataGridView1.Columns.Item(1).Width = 200 
     DataGridView1.Columns.Item(2).Width = 90 
     DataGridView1.Columns.Item(3).Width = 90 
     DataGridView1.Columns.Item(4).Width = 100 
     DataGridView1.Columns.Item(5).Width = 100 
     DataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter 
     Dim checkBoxColumn As New DataGridViewCheckBoxColumn() 
     checkBoxColumn.HeaderText = "Tag" 
     checkBoxColumn.Width = 30 
     checkBoxColumn.Name = "checkBoxColumn" 
     DataGridView1.Columns.Insert(0, checkBoxColumn) 

    End Sub 

Ich hoffe, dass Sie meine point.Do bekomme ich etwas mit dem MYSQL zu tun haben Befehl? mit meinem Code? Ich weiß nicht, wie ich das erreichen kann.

TYSM For Future Hilfe

Antwort

0

Sie diese Voraussetzung nicht überall tun, können Sie es auf Ihrem Code tun könnte oder Ihre Anfrage direkt zu ändern:

Select ItemCode, 
Description, 
IF(ApprovedQty = 0, OrderQty, ApprovedQty) as myApprovedQty, 
UoM, 
UnitPrice, 
Total from final_purch where PRnumber = '" & Label2.Text & "' and Added is NULL OR Added ='';", con1 
+1

Wirklich eine große Hilfe Vielen Dank –

-1
SELECT 
    ItemCode, 
    Description, 
    IF (ApprovedQty = 0, OrderQty, ApprovedQty), 
    UoM, 
    UnitPrice, 
    Total 
FROM table 
+0

Während dieses Code-Snippet die Frage lösen kann, [hilft eine Erklärung] (// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) wirklich, um die Qualität Ihres Beitrags zu verbessern. Denken Sie daran, dass Sie die Frage für Leser in der Zukunft beantworten, und diese Leute könnten die Gründe für Ihren Codevorschlag nicht kennen. Bitte versuchen Sie auch nicht, Ihren Code mit erklärenden Kommentaren zu füllen, dies reduziert die Lesbarkeit sowohl des Codes als auch der Erklärungen! –

+0

Vielen Dank für die Hilfe sehr geschätzt. –

0

Sie sollten dies implementieren in Ihrer SQL verwendet eine case-Anweisung.

https://dev.mysql.com/doc/refman/5.7/en/case.html

Die obigen Antworten der IF() Funktion sind richtig, aber meiner Meinung nach ist es besser, die CASE-WHEN zu verwenden, um andere Datenbank-Engines wie Microsoft SQL Server und Oracle zu entsprechen.

+0

Danke für die Hilfe, Wirklich eine große Hilfe :) –

Verwandte Themen